【发布时间】:2011-01-28 05:15:32
【问题描述】:
假设您在一个数组中有 100000000 个 32 位浮点值,每个浮点数的值都介于 0.0 和 1.0 之间。如果你试着像这样总结它们
result = 0.0;
for (i = 0; i < 100000000; i++) {
result += array[i];
}
result 比 1.0 大得多时会遇到问题。
那么有哪些方法可以更准确地进行求和呢?
【问题讨论】:
-
为什么期望结果小于 1?我很困惑!
-
我认为他是在说一旦结果通过了 1.0,问题就开始出现了。 什么问题我不知道,但我就是这样处理的。
-
在 Python 中,使用
math.fsum(docs.python.org/library/math.html#math.fsum)。 -
我认为从示例代码中我们可以假设它不是 Python。
-
@splicer:你能说得更具体点吗?你的“问题”是什么意思?
标签: algorithm floating-point numerical