对于在IEEE 754(浮点型,32位)中使用单精度值的操作,当无法获得精确结果时,是否有办法以某种方式调节两个操作数以确保对操作结果进行舍入?换句话说,如何强制四舍五入到-Inf?
示例:
1.0f / 3.0f = 0.3333333432674407958984375f
1.0f / 3.0f = 0.333333313465118408203125f
] >>作为附加信息,我将在C99中进行此操作,(不幸的是)无法配置FPU。
对于在IEEE 754(浮点型,32位)中使用单精度值的操作,有一种方法可以以某种方式对两个操作数进行条件化,以确保在获得精确结果时对操作结果进行舍入...
C 1999和当前的C标准都指定了用于设置浮点舍入模式的工具。但是,并非所有的C实现都支持它们。在执行此操作的实现中,以下代码将保存先前的舍入模式,使用舍入到负无穷大执行操作,并恢复先前的舍入模式: