首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将大量浮点数相加

问将大量浮点数相加
EN

Stack Overflow用户
提问于 2018-02-26 09:45:27
回答 2查看 137关注 0票数 0

我正在学习数值分析,我不明白这一点:当添加大量浮点数时,最好的方法是从最低到最高将数字相加。为什么这比从高到低的数字相加更精确?

EN

回答 2

Stack Overflow用户

发布于 2018-02-26 18:16:45

假设您使用的是一个精度为3位的十进制浮点系统。如果你按这个顺序加上的正和数3+3+4+40+70+300+800+1000,你会得到部分和:,6 10 50 120 420 1220 2220,最后的结果是确切的和:,在任何一步都不存在任何近似。

如果反过来将它们相加,则会得到部分和:1800 2100 2170 2210 2210 2210 2210

浮点表示在0附近有更多的精度。一般来说,目标是使每个部分和的结果尽可能接近于零,以便每个部分和尽可能准确。当对相同符号的数字求和时,这意味着首先将较小的数字相加。

票数 1
EN

Stack Overflow用户

发布于 2018-02-26 18:12:18

当你把一个小数字和一个大数字相加时,你可能会失去很多精度。作为一个简单的例子,尝试使用(32位)浮点数将1000万个1和20000000相加。如果你先把所有的加起来(得到1000万),然后再加上2000万,你就得到了正确的答案,3000万。但是如果你从2000万开始,然后加上1000万,你最终会得到2000万。这是因为,在32位浮点运算中,2000万+1等于2000万。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48980354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档