使用当前舍入模式和方向将指定浮点值舍入到最接近的整数值。

语法

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 = ±INF

x = NaN
引发 FE_INVALID 并返回零 (0)。

备注

由于 C++ 允许重载,因此你可以调用采用 floatlong double 类型的 lrintllrint 重载。 在 C 程序中,除非使用 <tgmath.h> 宏来调用此函数,否则 lrintllrint 始终采用 double

如果使用 <tgmath.h>llrint() 宏,则参数的类型将决定选择哪个版本的函数。 有关详细信息,请参阅泛型类型数学

如果 x 不表示等效于整数值的浮点值,则这些函数将引发 FE_INEXACT

特定于 Microsoft:当结果超出返回类型的范围时,或者当参数为 NaN 或 无穷大时,返回值是定义的实现。 Microsoft 编译器返回零 (0) 值。

默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态

要求

函数 C 标头 C++ 标头
<math.h> <cmath>
lrint <tgmath.h>

有关兼容性的详细信息,请参阅 兼容性

另请参阅

按字母顺序显示的函数参考