关于javascript:JS舍入到小数点后2位

JS round to 2 decimal places

本问题已经有最佳答案,请猛点这里访问。

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

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

}

我做错什么了?


在JS浏览器控制台中键入

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

很明显,.toFixed(2)起作用。

你所做的错误是在打印答案后舍入,而不是使用正确的变量。

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

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

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

1
2
3
4
5
6
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;
}