判断小数是否相等

4年以前  |  阅读数:546 次  |  编程语言:JavaScript 
//肯定有人会说这还不简单,直接用'==='比较;
//实际上0.1+0.2 !==0.3,因为计算机不能精确表示0.1, 0.2这样的浮点数,所以相加就不是0.3了

Number.EPSILON = (function() { //解决兼容性问题
    return Number.EPSILON ? Number.EPSILON : Math.pow(2, -52);
})();
//上面是一个自调用函数,当JS文件刚加载到内存中,就会去判断并返回一个结果

function numbersequal(a, b) {
    return Math.abs(a - b) < Number.EPSILON;
}
//接下来再判断   
const a = 0.1 + 0.2, b = 0.3;
console.log(numbersequal(a, b)); //这里就为true了

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8