2017-05-06 50 views
0

我這一小段代碼:小於或大於顯示錯誤的結果

if(parseFloat(400).toFixed(2) < parseFloat(21233).toFixed(2)){ 
//Cant Do It 
} else { 
//Can Do It 
} 

它是如何有意義? 400 IS小於21233,但關於這個代碼,它不是這樣的。爲什麼?

回答

1

toFixed()輸出所以你比較:

"400.00" < "21233.00" 

這是因爲false"4"不小於"2"

+0

是否有其他解決方案更改爲固定?所以它不會發出字符串。 – Jordn

+0

@Jordn根本就不要'toFixed',因爲* + a.toFixed(2)> + b.toFixed(2)*總是與* a> b * –

+0

@Jordn相同您的輸入是整數,因此您可以比較它們直。如果你的輸入是字符串,你可以'Math.round(parseFloat(「400」)* 100)'獲得一個2位小數的精度。 – Halcyon