0

我正在编写代码,用于在 C++ 中使用整数加法和移位来枚举浮点加法以完成一些作业。我已经用谷歌搜索了这个主题,我可以通过调整指数然后添加来添加浮点数。问题是我找不到合适的算法来四舍五入结果。现在我正在使用截断。它显示了大约 0.000 倍量级的误差。但是当我尝试使用这个加法器进行复杂的计算,如 fft 时,它显示出巨大的错误。所以我现在正在寻找的是我的机器用于四舍五入浮点结果的确切算法。如果有人可以为此目的发布一些链接,那就太好了。

提前致谢。

4

1 回答 1

2

最常见的是,如果要舍入的位表示的值小于要保留的最小位的一半,则向下舍入,与截断相同。如果它们代表超过一半,则向上四舍五入,从而在最小保留位的位置加一。如果它们恰好是一半,则如果最小保留位为零,则向下舍入,如果该位为 1,则向上舍入。这被称为“四舍五入到最接近,关系到偶数”。</p>

这假定您已经拥有所有要四舍五入的位,并且在进行算术的过程中还没有丢失任何位。如果您不能保留所有位,则可以使用一些技术来跟踪有关它们的足够信息以进行正确的舍入,例如维护称为保护位、舍入位和粘性位的三个位。

于 2013-05-09T15:27:54.930 回答