如何判断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
`

`

posted @ 2023-11-12 17:30  流弊的小涛  阅读(36)  评论(0编辑  收藏  举报