在javascript中将数字舍入到一个小数

Rob*_*ens 3 javascript math google-maps-api-3

可能重复:
你如何在Javascript中舍入到1位小数?

以下代码显示在谷歌地图上显示的特定路线上的总覆盖距离.我设法将数字从公里转换为英里.这是函数的代码:

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';
Run Code Online (Sandbox Code Playgroud)

总计显示为41.76483039399999 mi.如何将total小数点四舍五入?

Pin*_*ade 12

Math.round(total * 10) / 10
Run Code Online (Sandbox Code Playgroud)

这导致了一个数字.toFixed()给出一个字符串,详见其他答案.


Jos*_*ber 11

用途toFixed:

var total = 41.76483039399999;
total = total.toFixed(1) // 41.8
Run Code Online (Sandbox Code Playgroud)

这是小提琴:http://jsfiddle.net/VsLp6/

  • 使用 `.toFixed()` 时要小心,因为它可能会为不同的浏览器返回不同的舍入结果。有关该主题的详细信息,请阅读 [**这篇文章**](http://stackoverflow.com/questions/566564/javascript-functions-math-roundnum-vs-num-tofixed0-and-browser-inconsistenci)! (2认同)