fe_dec_getround 和 fe_dec_setround 子例程
用途
读取并设置 IEEE 十进制浮点取整方式。
库
标准 C 库 (libc.a)
语法
#include <fenv.h>
int fe_dec_getround ();
int fe_dec_setround (RoundMode);
int RoundMode描述
fe_dec_getround 子例程返回当前舍入方式。 fe_dec_setround 子例程将舍入方式更改为 RoundMode 参数,并在成功完成时返回零值。
当十进制浮点运算的无限精确结果不能精确地以目标十进制浮点格式表示时,将发生十进制浮点舍入。 十进制浮点算术的 IEEE 标准定义了五种对浮点数进行舍入的方式: 向零舍入, 舍入到最接近的, 朝 + INF 方向舍入, 朝 -INF 方向舍入和 舍入到离零最近的关系。 一旦选择了舍入方式,它将影响所有后续十进制浮点运算,直到选择了另一个舍入方式为止。
提示: 缺省十进制浮点取整方式是 舍入到最接近的 方式。 所有 C 主程序都以设置为 舍入到最接近的的舍入方式开始。
舍入方式的编码是在 ANSI C 标准中定义的。 fenv.h 文件包含舍入方式的定义。 下表显示了 fenv.h 定义, ANSI C 标准值以及每个舍入方式的描述。
| fenv.h 定义 | ANSI 值 | 描述 |
|---|---|---|
| FE_DEC_TONEAREST | 0 | 舍入到最接近的值 |
| FE_DEC_TOWARDZERO | 1 | 向零舍入 |
| FE_DEC_UPPERING | 2 | 向 + INF 舍入 |
| FE_DEC_向下 | 3 | 朝 -INF 方向舍入 |
| FE_DEC_TONEARESTFROMZERO | 4 | 舍入到离零最近的同数 |
参数
| 项 | 描述 |
|---|---|
| RoundMode | 指定下列其中一种方式 :XX_ENCODE_CASE_CAPS_LOCK_ON fe_dec_towardzero , fe_dec_tonearest , fe_dec_upper , fe_dec_dowering 和 fe_dec_tonearestfromzero。 |
返回值
成功完成时, fe_dec_getround 子例程将返回当前舍入方式。 否则返回-1。
在成功完成时, fe_dec_setround 子例程返回零值。 否则返回-1。