Javascript JS四舍五入至小数点后2位

Javascript JS四舍五入至小数点后2位,javascript,decimal,Javascript,Decimal,我试图将返回的数字限制在小数点后2位,但这段代码不适合我 function myFunction() { var x = document.getElementById("mySelect").value; document.getElementById("demo").innerHTML = "Result is: " + x * 1.09; value = valToRound.toFixed(2); } 我做错了什么?在JS浏览器控制台中键入 x = 2.71828 x.toFi

我试图将返回的数字限制在小数点后2位,但这段代码不适合我

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


我做错了什么?

在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;
}

valToRound
?那是什么?嗯,你没有把取整后的数字分配给innerHTML吗?