JavaScript中数字比较大小的问题

最近解决了一个js的小问题,觉得挺有趣决定记下来。

if(parseFloat(self.bill().orderFinalTotal()).toFixed(2)>= (parseFloat(data.LeastCost)/100))
{
...
}else 
{
...
}

得出来的结果竟然是orderFinalTotal()的5.00比data.LeastCost的12.32还要大,判断失败。

后来去掉了左边的toFixed()方法后判断才正确了。

结论:
1.js中字符串的比较是从左往右的,5比10大,因为编译器最先判断的是首位字符,5比1大,所以数字如果要判断大小要注意类型转换。
2.toFixed()方法是保留小数点的方法,用在数值类型,返回的却是字符串类型,有点小坑。
3.查了度娘后得知,Number()方法不仅返回整型数值,还可以返回浮点型。这个强制转换类型的方法比较简单暴力,推荐使用。

你可能感兴趣的:(JS)