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;

描述

林特夫林特尔林特rintd32rintd64rintd128 子例程在当前舍入方式的方向上返回最接近 X 的整数值 (表示为浮点数)。 当前舍入方式是实现定义的。

林特夫林特尔林特rintd32rintd64rintd128 子例程与 内阿尔宾特内阿尔宾特夫内阿尔宾特尔nearbyintd32nearbyintd64nearbyintd128 子例程的不同之处在于,如果结果与自变量的值不同,那么这些子例程可能会引发非精确浮点异常。

希望检查错误情况的应用程序应该将 错误号 全局变量设置为零,并在调用这些子例程之前调用 费克莱雷克斯普(FE_ALL_EXCEPT)。 返回时,如果 错误号 为非零或 费泰斯特西普(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) 为非零,那么表示发生了错误。

参数

描述
X 指定要舍入的值。

返回值

成功完成后, 林特夫林特尔林特rintd32rintd64rintd128 子例程在当前舍入方式的方向上返回最接近 X 的整数 (以浮点数表示)。

如果 x 是 NaN, ,则返回 NaN。

如果 X 为 ± 0 或 ± Inf ,那么将返回 X

如果正确的值将导致溢出,那么 rintfrintlrintrintd32rintd64rintd128 子例程将返回宏 ±HUGE_VALF, ±HUGE_VALL, ±HUGE_VAL, ±HUGE_VAL_D32, ±HUGE_VAL_D64的值。 和 ±HUGE_VAL_D128 (分别具有与 x相同的符号)。