【问题标题】:JS round to 2 decimal places [duplicate]JS四舍五入到小数点后2位[重复]
【发布时间】:2015-11-24 20:41:58
【问题描述】:

我试图将返回的数字限制为小数点后 2 位,但此代码对我不起作用;

function myFunction() {
var x = document.getElementById("mySelect").value;
document.getElementById("demo").innerHTML = "Result is: " + x * 1.09; value = valToRound.toFixed(2);

}

我做错了什么?

【问题讨论】:

  • valToRound?那是什么?
  • 嗯,你不是将四舍五入的数字分配给innerHTML?

标签: javascript decimal


【解决方案1】:

在 JS 浏览器控制台中输入

  x = 2.71828
  x.toFixed(2)
  "2.72"

很明显.toFixed(2) 有效

你做错了什么是在打印答案之后进行舍入,而不是使用正确的变量。

document.getElementById("demo").innerHTML = "Result is: " + x * 1.09; value = valToRound.toFixed(2);

养成使用parseFloat() 将字符串转换为数字的习惯也是一个好主意。在 JS 中,'2'*'2' 是 '4' 但 '2'+'2' 是 '22',除非你先转换为数字。

如果你这样做,它会起作用:

function myFunction() {
  var x = parseFloat(document.getElementById("mySelect").value);
  var valToRound = x * 1.09;
  var value = valToRound.toFixed(2);
  document.getElementByID("demo").innerHTML = "Result is: " + value;
}

【讨论】:

    猜你喜欢
    • 2012-03-11
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多