trunc, truncf, truncl

确定小于或等于指定浮点值的最接近的整数。

语法

double trunc( double x );
long double truncl( long double x );
#define trunc(X) // Requires C11 or higher

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

参数

x
要截断的值。

返回值

如果成功,则函数返回向零舍入的 x 整数值。

否则,这些函数可能会返回以下值之一:

问题 返回值
x = ±INFINITY x
x = ±0 x
x = NaN NaN

_matherr 中所指定的内容报告错误。

备注

由于 C++ 支持重载,您可以调用采用并返回 truncfloat 类型的 long double 的重载。 在 C 程序中,除非使用 <tgmath.h> 宏调用此函数,否则 trunc 始终采用并返回 double

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

由于最大的浮点值是精确的整数,因此该函数不会自行溢出。 但是,将值还原为整型时可能会导致此函数溢出。

还可以通过从浮点隐式转换为整数来向下舍入;但是此操作仅限于可存储为目标类型的值。

要求

函数 C 标头 C++ 标头
trunc, truncf, truncl <math.h> <cmath>
trunc <tgmath.h>

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

另请参阅

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