【发布时间】:2020-05-06 21:51:08
【问题描述】:
对于在 IEEE 754(浮点数,32 位)中使用单精度值的操作,有没有办法以某种方式调节两个操作数,以确保在无法获得精确结果时,运算结果被向下舍入?换句话说,如何强制舍入到 -Inf?
例子:
- 典型结果(使用“四舍五入”):
1.0f / 3.0f = 0.3333333432674407958984375f - 预期结果(使用“向下舍入”):
1.0f / 3.0f = 0.333333313465118408203125f
作为附加信息,我将在 C99 中执行此操作,并且(不幸的是)无法配置 FPU。
【问题讨论】:
-
Re“在 C99 中,并且(不幸的是)无法配置 FPU”:为什么这么说? C 1999 在第 7.6 节中为此指定了设施,带有
<fenv.h>标头。
标签: floating-point rounding ieee-754