nearbyint, nearbyintf, nearbyintl

将指定的浮点值舍入为整数,并以浮点格式返回该值。

语法

double nearbyint( double x );
float nearbyintf( float x );
long double nearbyintl( long double x );
#define nearbyint( X ) // Requires C11 or higher

float nearbyint( float x ); //C++ only
long double nearbyint( long double x ); //C++ only

参数

x
要舍入的值。

返回值

如果成功,则返回 x,舍入到最接近的整数,使用 fegetround 报告的当前舍入格式。 否则,该函数返回以下值之一:

问题 返回值
x = ±INFINITY ±INFINITY,未修改
x = ±0 ±0,未修改
x = NaN NaN

错误不会通过 _matherr 报告;具体而言,此函数不会报告任何 FE_INEXACT 异常。

注解

此函数和 rint 的主要区别是此函数不会引发不精确的浮点异常。

因为最大浮点值均为精确的整数,所以此函数本身不会溢出;而输出可能会溢出返回值,具体取决于所使用函数的版本。

C++ 允许重载,因此可以调用采用并返回 floatlong double 参数的 nearbyint 重载。 在 C 程序中,除非使用 <tgmath.h> 宏调用此函数,否则 nearbyint 始终采用两个双精度值并返回一个双精度值。

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

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

要求

函数 C 标头 C++ 标头
nearbyint, nearbyintf, nearbyintl <math.h> <cmath> 或 <math.h>
nearbyint <tgmath.h>

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

另请参阅

按字母顺序显示的函数参考
数学和浮点支持