javascript 定时器内累加小数后变成16位的浮点数,这是啥意思?
请看这:
var startNum = 1;
setInterval(function ()
{
startNum += 0.1;
console.log(startNum);
}, 500);
打印出来是这样的:
1.1
1.2000000000000002
1.3000000000000003
1.4000000000000004
1.5000000000000004
1.6000000000000005
这难道是坑吗?郁闷。
很正常,这是由于精确度造成的问题,不信你试一下0.1+0.2不等于0.3。