如何判断0.1+0.2等于0.3呢?
最常见的方法是设置一个误差范围值,通常称为“机器精度”。从ES6开始,该值定义在Number.EPSILON中,可以直接拿来用,也可以为ES6之前的版本写polyfill;
if(!Number.EPSILON){
Number.EPSILON = Math.pow(2,-52)
}`
可以用以下方法判断是否相等(在误差范围内 )
`
// 判断0.+0.2 在一个误差值范围内相等
function numbersCloseEnoughToEqual(n1,n2){
return Math.abs(n1 - n2) < Number.EPSILON
}
const a = 0.1 + 0.2;
const b = 0.3;
console.log(numbersCloseEnoughToEqual(a,b)) //true
`
`