js中0.1+0.2 == 0.3吗?
那么如何判断两个浮点数直接相等呢?
1、精度判断法
2、使用toFixed()方法
toFixed()方法可以把Number四舍五入为指定小数的数字。
语法
NumberObject.toFixed(num)//num代表要保留的小数位数。
但是toFixe存在不精准的问题:
解决方法:
重写toFixed()方法:
参考:
https://blog.csdn.net/undytk/article/details/88912386
https://blog.csdn.net/qq_33237207/article/details/81668457
正常的比较浮点数大小会出现偏差,因为精度的问题会导致 0.1+0.2 不等于 0.3 ,所以无法用 == 或者 === 做比较,可以采用下面的方式判断是否相等,判断差值是否小于最小精度值var a = 0var b = 0.00
if (parseFloat(a) == parseFloat(b) ) {
// 真的是等于0
}
参考上面的例子,使用parseFloat函数能够精确判断浮点数是不是0