假设我们有一个包含小数(约为
我们得到了一些值
但是如果我们将数组分成若干部分,然后计算每个部分的总和,再将所有部分的总和相加,我们得到了一些接近
有人知道如何通过将这些数字分成若干部分来计算小双精度数的总和而不会失去准确性吗?
10^(-15)
)的双精度数数组c++。如果我们按顺序计算该数组中数字的总和,例如:double sum = 0;
for (int i = 0; i < n; i++) sum+=array[i];
我们得到了一些值
x
。但是如果我们将数组分成若干部分,然后计算每个部分的总和,再将所有部分的总和相加,我们得到了一些接近
x
但不完全等于x
的值x2
。因此,我在计算总和时失去了准确性。有人知道如何通过将这些数字分成若干部分来计算小双精度数的总和而不会失去准确性吗?
a/b
。否则,你就不能这样做。但一般来说,你不能这样做,因为在C++语言中没有内置这个功能。事实上,你真的不行,因为0.66666666不能转化为有理数。也许Boost
库可以帮助你。当你说“不失精度”时,意味着你不会遭受太大影响(你需要一定程度的期望)。 - CppLearner