0.1+0.2 !==0.3怎么处理
1、在JavaScript中的二进制的浮点数0.1和0.2并不是十分精确, 它们相加的结果并非正好等于0.3,而是一个比较接近的数字 0.30000000000000004, 所以条件判断结果为false
2、解决方法:设置一个误差范围值;
而对于Javascript来说,这个值通常是2^-52,而在ES6中, 已经为我们提供了这样一个属性:Number.EPSILON,而这个值正等于2^-52
Number.EPSILON = (function() {
return Number.EPSILON ? Number.EPSILON : Math.pow(2,-52);
})();
function fn(a,b) {
return Math.abs(a-b) < Number.EPSILON;
}
var a = 0.2 + 0.1;
var b = 0.3;
console.log(fn(a,b))

浙公网安备 33010602011771号