2017-05-06 51 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