使用当前舍入模式和方向将指定浮点值舍入到最接近的整数值。
语法
long int lrint(
double x
);
long int lrint(
float x
); //C++ only
long int lrint(
long double x
); //C++ only
long int lrintf(
float x
);
long int lrintl(
long double x
);
long long int llrint(
double x
);
long long int llrint(
float x
); //C++ only
long long int llrint(
long double x
); //C++ only
long long int llrintf(
float x
);
long long int llrintl(
long double x
);
#define lrint(X) // Requires C11 or higher
参数
x
要舍入的值。
返回值
如果成功,则返回 x
的舍入的整数值。
问题 | 返回值 |
---|---|
x 超出了返回类型的范围x = ±INFx = NaN |
引发 FE_INVALID 并返回零 (0)。 |
备注
由于 C++ 允许重载,因此你可以调用采用 float
和 long double
类型的 lrint
和 llrint
重载。 在 C 程序中,除非使用 <tgmath.h> 宏来调用此函数,否则 lrint
和 llrint
始终采用 double
。
如果使用 <tgmath.h>llrint()
宏,则参数的类型将决定选择哪个版本的函数。 有关详细信息,请参阅泛型类型数学。
如果 x
不表示等效于整数值的浮点值,则这些函数将引发 FE_INEXACT
。
特定于 Microsoft:当结果超出返回类型的范围时,或者当参数为 NaN 或 无穷大时,返回值是定义的实现。 Microsoft 编译器返回零 (0) 值。
默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态。
要求
函数 | C 标头 | C++ 标头 |
---|---|---|
<math.h> | <cmath> | |
lrint 宏 |
<tgmath.h> |
有关兼容性的详细信息,请参阅 兼容性。