【问题标题】:Javascript Round to 2 Decimals [duplicate]Javascript舍入到2个小数[重复]
【发布时间】:2015-12-14 14:33:03
【问题描述】:

我希望将 DistanceInput.value 和 DistanceInput1.value 舍入为 2 个小数,例如 1.80 和/或 11.80 等...

谢谢

directionsService.route(request, function(response, status) {
  if (status == google.maps.DirectionsStatus.OK) {
    directionsDisplay.setDirections(response);
    distanceInput.value = response.routes[0].legs[0].distance.value / 1000 * 0.62137119;
    distanceInput1.value = response.routes[0].legs[0].distance.value / 1000 * 0.62137119 + 1.00;
  }
}

【问题讨论】:

  • 我已经更改了问题,因此据我所知,它不是重复的。
  • 最好创建一个新问题,而不是完全改变这个问题,因为现有答案现在没有意义了。
  • 不用担心。我会回滚你的更改,你可以创建一个新问题。

标签: javascript


【解决方案1】:

使用.toFixed()方法

var num = response.routes[0].legs[0].distance.value / 1000 * 0.62137119;
distanceInput.value = num.toFixed(2);

查看更多:

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed

【讨论】:

  • 我知道 OP 询问的是两位小数。这只是对需要更精确的其他人的警告:(0.3).toFixed(17) === "0.29999999999999999"(0.1+0.2).toFixed(17) === "0.30000000000000004" stackoverflow.com/questions/1458633/…
  • 这已经奏效了,谢谢。我将编辑帖子,因为我正在努力将其输出到 PHP
【解决方案2】:

取决于您需要的准确度。

function toTwo() {    
    return +(Math.round(number + "e+2")  + "e-2");
}

Math.round(num * 100) / 100

找到另一个有用的,如果浮动是文本。

如果是字符串

parseFloat(num).toFixed(2);

如果数字

num = num.toFixed(2);

【讨论】:

    【解决方案3】:

    你可以使用(valueToRound).toFixed(2);

    例如distanceInput.value = (response.routes[0].legs[0].distance.value / 1000 * 0.62137119).toFixed(2);

    【讨论】:

      猜你喜欢
      • 2018-01-29
      • 2011-02-18
      • 2014-05-09
      • 2015-11-24
      • 2014-11-16
      • 2012-03-11
      • 2018-04-11
      • 2022-01-23
      • 2013-03-23
      相关资源
      最近更新 更多