Javascript对简单求和给出错误答案

Javascript对简单求和给出错误答案,javascript,math,Javascript,Math,好的,我们都知道javascript在数学、小数、乘法和舍入方面都很糟糕。但我从来没有注意到,在小数点后1位加上简单的小数是非常糟糕的。我想知道为什么在一个非常小的数组和上会发生这种情况,因为我需要精确性,所以在这里舍入并不能消除所有的麻烦。第二,我可以得到一些关于一个像样的数学库的建议,因为我相信主要答案会推荐一个 下面是一个代码笔,用于查看javascript在操作中失败:): 守则: var sumList = [18.7, 29, 22.7, 0.3, 5.6, 17.5, 2.6,

好的,我们都知道javascript在数学、小数、乘法和舍入方面都很糟糕。但我从来没有注意到,在小数点后1位加上简单的小数是非常糟糕的。我想知道为什么在一个非常小的数组和上会发生这种情况,因为我需要精确性,所以在这里舍入并不能消除所有的麻烦。第二,我可以得到一些关于一个像样的数学库的建议,因为我相信主要答案会推荐一个

下面是一个代码笔,用于查看javascript在操作中失败:):

守则:

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

JavaScript将所有数字表示为浮点-由于舍入错误,浮点运算不准确。JavaScript(或大多数其他编程语言)中的浮点运算不准确。事实上,你的答案是正确的,至少从浮点限制的角度来看是正确的。读起来也很好:
好的,我们都知道javascript在数学方面很糟糕
只是和大多数其他编程语言一样糟糕,因为它是CPU进行计算。好的,这就是我所期待的答案。一些好文章链接谢谢大家