4

重複の可能性:
Javascript で小数点以下 1 桁に丸めるにはどうすればよいですか?

次のコードは、Google マップに表示された特定のルートでの総走行距離を表示します。数をキロメートルからマイルに変換することができました。関数のコードは次のとおりです。

function computeTotalDistance(result) {
        var total = 0;
        var myroute = result.routes[0];
        for (i = 0; i < myroute.legs.length; i++) {
          total += myroute.legs[i].distance.value;
        }
        total = total *0.621371/ 1000.
        document.getElementById('total').innerHTML = total + ' mi';

合計は のように表示され41.76483039399999 miます。totalを小数点以下 1 桁に丸めるにはどうすればよいでしょうか。

4

4 に答える 4

17

使用toFixed:

var total = 41.76483039399999;
total = total.toFixed(1) // 41.8

これがフィドルです:http://jsfiddle.net/VsLp6/

于 2013-01-22T14:37:26.787 に答える
14
Math.round(total * 10) / 10

これにより、数値が得られます。toFixed() は、他の回答で詳述されているように、文字列を提供します。

于 2013-01-22T14:38:03.560 に答える
1

あなたが探しているのはNumber.prototype.toFixed;41.76483039399999.toFixed(1) === "41.8";

function computeTotalDistance(result) {
    var total = 0, myroute = result.routes[0];
    for (i = 0; i < myroute.legs.length; i++) {
        total += myroute.legs[i].distance.value;
    }
    total = (total * 0.621371 / 1000).toFixed(1);
    document.getElementById('total').innerHTML = total + ' mi';
}

これを実現するには、他にも非常に多くの方法があります。たとえば、from メソッドMathやインスタンスを使用せずにNumber

(~~(10 * total) + (~~(100 * total) % 10 >= 5))/10 + '' // "41.8"
// (      417   +     (6 >= 5)               )/10 = 41.8
于 2013-01-22T14:38:47.350 に答える
0

あなたが望むことをする機能があります:

変数の合計 = 41.76483039399999; print(x.toFixed(2));

印刷されます 41.76

于 2013-01-22T14:40:58.057 に答える