gpt4 book ai didi

c++ - 浮点加法向上舍入

转载 作者:太空狗 更新时间:2023-10-29 21:49:23 25 4
gpt4 key购买 nike

我有一个浮点加法,由于值的大小不同,所以有点可能出错,所以相当多的有效数字被移出(甚至可能是所有数字)。在整个计算范围内,精度并不重要,只是结果大于或等于任意精度的结果(我在这里跟踪范围的末尾,并将其扩展 至少一定数量)。

所以我需要一个加法,在将加数带入相同的指数时进行四舍五入(即,如果设置了从加数移出的一位数字,加法应该发生在 nextval(denormalized_summand, +infinity)

是否有一种简单的方法来执行此加法(手动反规范化较小的加数并在其上使用 nextval 突然想到,但我怀疑这是否有效)?

最佳答案

可以将FPU舍入方式设置为“向上”,然后正常相加即可。

这是在 GNU 环境中的做法:

#include <fenv.h>

fesetround(FE_UPWARD);

如果您有 Microsoft 编译器,则等效代码为:

#include <float.h>

_set_controlfp(_RC_UP, _MCW_RC);

关于c++ - 浮点加法向上舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8383623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com