浏览器中的数组总和不正确

时间:2014-08-26 23:53:07

标签: javascript sum decimal

修复验证错误,阻止用户使用消息进行保存

  

“你有100%。你需要100%!”

我在Firefox 34和IE 11中遇到了一个非常有趣的问题:

0.57+8.36+3.36+0.19 

在Firefox和Chrome中提供<​​/ p>

12.479999999999999

在IE中

12.479999999999998

如果没有人想要计算,那么结果是正确的 12.48

我现在将修复问题,通过在reduce函数中使用Math.Round来“纠正”每一步的值,但真正的问题是,在第一眼(天真用户)不正确行为的原因是什么?

JSFiddle

请注意,我最初通过尝试对数组求和来发现问题:

[ 0.57, 8.36, 3.36, 0.19, 39.29, 6.37, 17.24, 0.16, 2.07, 0.04, 22.36].sum()
[ 0.57, 8.36, 3.36, 0.19, 39.29, 6.37, 17.24, 0.16, 2.07, 0.04, 22.36].reduce(function(item,item2){return item+item2})

0 个答案:

没有答案