【问题标题】:Rounding a number to one decimal in javascript [duplicate]在javascript中将数字四舍五入到小数点后[重复]
【发布时间】:2013-01-05 19:53:15
【问题描述】:

可能重复:
How do you round to 1 decimal place in Javascript?

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

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 舍入到小数点后一位?

【问题讨论】:

标签: javascript math google-maps-api-3


【解决方案1】:

使用toFixed:

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

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

【讨论】:

  • 小心使用.toFixed(),因为它可能会针对不同的浏览器返回不同的舍入结果。阅读this post 了解有关该主题的详细信息!
  • 我想做,但价值很高:例如 749,640 现在我期望:750,000 我该怎么做?
  • 我想把 41.78 变成 41.7 而不是 41.8 !!
  • @MojtabaDarzi - 为此您需要 Math.floor(),并为您的精度提供乘法和除法:Math.floor(41.78 * 10) / 10 将返回 41.7
【解决方案2】:
Math.round(total * 10) / 10

这会产生一个数字。 toFixed() 给出一个字符串,详见其他答案。

【讨论】:

  • 可能是因为它有一个内置函数 (.toFixed()),它比使用 Math.round() 更优雅。尽管您的解决方案没有任何问题,也不应该被否决,因为从技术上讲它并没有错。
  • @AlexStack 两种不同的方式返回不同的类型——我的是数字,toFixed() 返回一个字符串。
  • 好点。为我 +1。
【解决方案3】:

您正在寻找Number.prototype.toFixed41.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';
}

还有很多其他方法可以实现这一点,例如,不使用来自Math 的任何方法或Number 的实例

(~~(10 * total) + (~~(100 * total) % 10 >= 5))/10 + '' // "41.8"
// (      417   +     (6 >= 5)               )/10 = 41.8

【讨论】:

    【解决方案4】:

    有一个功能可以做你想做的:

    var 总计 = 41.76483039399999; 打印(x.toFixed(2));

    它将打印 41.76

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-27
      • 2013-03-23
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      • 2014-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多