【发布时间】:2016-05-09 21:50:35
【问题描述】:
我有0.1 的二进制表示:
0.00011001100110011001100110011001100110011001100110011001100110
我需要将它四舍五入到最接近的位置,以便能够将其存储在双精度浮点中。我似乎无法理解如何做到这一点。大多数教程都在讨论保护位、圆形位和粘性位 - 它们在这个表示中的什么位置?
我还找到了以下解释:
让我们看看 0.1 在双精度下是什么样子的。首先,我们来写 它是二进制的,被截断为 57 个有效位:
0.000110011001100110011001100110011001100110011001100110011001…
第 54 位及以上的总和大于位值的一半 第 53 位,因此向上取整
0.0001100110011001100110011001100110011001100110011001101
这个不讨论 GRS 位,为什么?他们不是总是需要的吗?
【问题讨论】:
标签: binary floating-point rounding