2015-08-30 159 views
-2

我想限制返回的数字只有2个小数位,但这段代码不适用于我;JS舍入到2位小数

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

}

我在做什么错?

+0

'valToRound'?那是什么? – MinusFour

+0

嗯,你没有把这个舍入的数字赋给innerHTML? – epascarello

回答

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