js中有个经典“0.1 + 0.2 != 0.3”的问题,
if(0.1 + 0.2 === 0.3) {
alert('yes')
} else {
alert('no')
}
执行后会弹出”no“。
what?
原来,js中浮点数不能直接用等号判断相等,需要通过”2个数的差值小于等于最小精度值“判断相等,如下:
if (Math.abs(num1 - num2) <= Number.EPSILON) {
// 2个数相等
} else {
// 2个数不等
}