Javascript 为什么在JS中重新组合总和有时会产生不同的结果?
为什么对总和进行不同的排序会产生不同的结果(请注意,这个问题是不是关于为什么0.1+0.2不是0.3的问题)Javascript 为什么在JS中重新组合总和有时会产生不同的结果?,javascript,floating-point,addition,Javascript,Floating Point,Addition,为什么对总和进行不同的排序会产生不同的结果(请注意,这个问题是不是关于为什么0.1+0.2不是0.3的问题) 这是因为中间结果的价值 在第一个示例中,按以下顺序执行: 15.2+30.7=45.9 45.9+3=48.9 所以我们有一个中间结果45.9 在第二个示例中,按以下顺序执行: 30.7+3=33.7 15.2+33.7=48.9 …因此我们得到了中间结果33.7 显然,我们都知道的(旧的)不精确性是随着第二个而不是第一个出现的。我假设第一种情况下的中间值(33.7或非常接近)是可精确表
这是因为中间结果的价值 在第一个示例中,按以下顺序执行:
原因是一样的。这些浮点错误还取决于中间结果,在使用括号时会更改中间结果。这是否回答了您的问题?还有其他问题吗
15.2 + 30.7 + 3 = 48.9
15.2 + (30.7 + 3) = 48.900000000000006