rintf , rintl , rint , rintd32, rintd64或 rintd128 子例程
用途
舍入为最接近的整数值。
语法
#include <math.h>
float rintf (x)
float x;
long double rintl (x)
long double x;
double rint (x)
double x;
_Decimal32 rintd32(x)
_Decimal32 x;
_Decimal64 rintd64(x)
_Decimal64 x;
_Decimal128 rintd128(x)
_Decimal128 x;
描述
林特夫, 林特尔, 林特, rintd32, rintd64和 rintd128 子例程在当前舍入方式的方向上返回最接近 X 的整数值 (表示为浮点数)。 当前舍入方式是实现定义的。
林特夫, 林特尔, 林特, rintd32, rintd64和 rintd128 子例程与 内阿尔宾特, 内阿尔宾特夫, 内阿尔宾特尔, nearbyintd32, nearbyintd64和 nearbyintd128 子例程的不同之处在于,如果结果与自变量的值不同,那么这些子例程可能会引发非精确浮点异常。
希望检查错误情况的应用程序应该将 错误号 全局变量设置为零,并在调用这些子例程之前调用 费克莱雷克斯普(FE_ALL_EXCEPT)。 返回时,如果 错误号 为非零或 费泰斯特西普(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) 为非零,那么表示发生了错误。
参数
| 项 | 描述 |
|---|---|
| X | 指定要舍入的值。 |
返回值
成功完成后, 林特夫, 林特尔, 林特, rintd32, rintd64和 rintd128 子例程在当前舍入方式的方向上返回最接近 X 的整数 (以浮点数表示)。
如果 x 是 NaN, ,则返回 NaN。
如果 X 为 ± 0 或 ± Inf ,那么将返回 X 。
如果正确的值将导致溢出,那么 rintf, rintl, rint, rintd32, rintd64和 rintd128 子例程将返回宏 ±HUGE_VALF, ±HUGE_VALL, ±HUGE_VAL, ±HUGE_VAL_D32, ±HUGE_VAL_D64的值。 和 ±HUGE_VAL_D128 (分别具有与 x相同的符号)。