好吧,我们都知道javascript在数学,小数,乘法,舍入方面很糟糕。但是我从来没有注意到,即使将简单的小数点加到仅1个小数位,它甚至都非常糟糕。我想知道为什么这是在一个非常琐碎的数组总和上发生的,在这里四舍五入也不是使所有麻烦都消失的一种选择,因为我需要准确性。第二,我可以在一个体面的数学库中获得一些建议,因为我相信主要答案会推荐一个。
这里有一支代码笔,以查看javascript操作失败:): https://codepen.io/anon/pen/jvyVzL
代码:
var sumList = [18.7, 29, 22.7, 0.3, 5.6, 17.5, 2.6, 2.6, 1]
function1 () {
return sumList.reduce((a, b) => a + b, 0)
}
// result: 99.99999999999999
// expected: 100