【发布时间】:2019-04-21 02:01:23
【问题描述】:
如果我将十进制数 3120.0005 转换为浮点(32 位)表示,该数字将向下舍入为 3120.00048828125。
假设我们使用比例为 10^12 的定点数,那么 1000000000000 = 1.0 和 3120000500000000 = 3120.0005。
将公式/算法四舍五入到最接近的 IEEE 754 精度以获得 3120000488281250 是什么? 我还需要一种方法来获得四舍五入的结果 (3120000732421875)。
【问题讨论】:
-
我想最简单的方法是转换为浮点数,然后再转换回您的格式。
-
定点数如何存储?
-
@user3386109,比例为 10^12,所以 3120.0005 = 3120000500000000
-
求两个不大于 x 的最大幂。让 p 除以 2^23。找到最接近 x 的 p 的倍数。结果就是这样。
-
某些结果无法以您的格式表示。例如,对于可表示的输入 1.0000001,最接近的 IEEE-754 32 位二进制值是 1.00000011920928955078125,但这不能以您的格式表示。那你想要什么结果?
标签: c algorithm formula ieee-754 fixed-point