FP_INT_TONEAREST宏
概要:
#include <math.h> #define FP_INT_TONEAREST value //value值由具体实现定义。
描述:
该宏是数学舍入方向宏(math rounding direction macro),表示roundeven函数的舍入方向,数值转换成浮点格式的整数值时向偶数方向就近舍入。该宏会扩展为整型常量表达式,可用作fromfp、ufromfp、fromfpx、ufromfpx函数的第二个参数。
ISO/IEC 9899:2024标准定义了以下5个数学舍入方向宏:
| 宏 | 舍入方向 | 对应函数 |
| FP_INT_UPWARD | 向上舍入。 | 表示ceil函数的舍入方向。 |
| FP_INT_DOWNWARD | 向下舍入。 | 表示floor函数的舍入方向。 |
| FP_INT_TOWARDZERO | 向0舍入。 | 表示trunc函数的舍入方向。 |
| FP_INT_TONEARESTFROMZERO | 向远离0的方向就近舍入。 | 表示round函数的舍入方向。 |
| FP_INT_TONEAREST | 向偶数方向就近舍入。 | 表示roundeven函数的舍入方向。 |
以上数学舍入方向宏表示不同的舍入方向,会扩展为不同值的整型常量表达式。
范例:
|
|
可能输出:
fromfp(2.55, FP_INT_TONEAREST, 32) = 3.000000
fromfp(2.35, FP_INT_TONEAREST, 32) = 2.000000
fromfp(2.50, FP_INT_TONEAREST, 32) = 2.000000
fromfp(3.50, FP_INT_TONEAREST, 32) = 4.000000
(注:编译时实现还未支持宏FP_INT_TONEAREST和函数fromfp。)
相关内容:
| FP_INT_DOWNWARD | 表示向下舍入的数学舍入方向宏。 |
| FP_INT_TOWARDZERO | 表示向0舍入的数学舍入方向宏。 |
| FP_INT_TONEARESTFROMZERO | 表示向远离0的方向就近舍入的数学舍入方向宏。 |
| FP_INT_UPWARD | 表示向上舍入的数学舍入方向宏。 |
主要参考资料:
2、sourceware.org : Rounding Functions