2015-08-30 96 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; 
}