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))

  

posted @ 2021-04-28 16:19  努力奔跑的小孩儿  阅读(481)  评论(0)    收藏  举报