Javascript简单求和错误

Javascript简单求和错误,javascript,floating-point,sum,Javascript,Floating Point,Sum,我试图对10个数字元素的数组进行简单求和。 我得到了一个完全不正确的结果,它只出现在特定值的数组中,否则效果很好 var总和=0; var值=[14,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4]; 对于(变量i=0;i

我试图对10个数字元素的数组进行简单求和。
我得到了一个完全不正确的结果,它只出现在特定值的数组中,否则效果很好

var总和=0;
var值=[14,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4];
对于(变量i=0;i控制台日志(总和)您的代码运行良好,这与浮点的不精确性有关。在进行计算之前,将每个值乘以10(因此1.4变为14),最终结果为0

另见

var总和=0;
var值=[14,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4,-1.4];
对于(var i=0;i

console.log(1.39999999977+-1.4);
我看到了
-2.220446049250313e-15
,它是浮点运算的遗留值。它不是-2.22,而是-2.2*10^(-15)。(为了澄清上述评论:它是一个非常小的分数,远低于1/高于-1。)请记住,您正在使用JavaScript进行浮点运算,其中0.1+0.2不等于0.3。我知道它是-2.2*10^(-15),但对这个结果进行四舍五入时,我预期为0