我试图将返回的数字限制为只有2位小数,但这段代码并不适合我;
function myFunction() {
var x = document.getElementById("mySelect").value;
document.getElementById("demo").innerHTML = "Result is: " + x * 1.09; value = valToRound.toFixed(2);
}
我做错了什么?
答案 0 :(得分:10)
在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;
}