C
数值 | Numerics

truncf

trunc, truncf, truncl

在头文件中定义
float truncf(float arg);(1)(自C99以来)
double trunc(double arg);(2)(自C99以来)
long double truncl(long double arg);(3)(自C99以来)
在头文件<tgmath.h>中定义
#define trunc(arg)(4)(自C99以来)

1-3)计算量值不大于arg的最近整数。

4)类型 - 泛型宏:如果arg的类型为long double,则调用truncl。 否则,如果arg具有整数类型或double类型,则调用trunc。 否则,truncf被调用。

参数

ARG-浮点值

返回值

如果没有发生错误,则返回量值不大于arg的最接近的整数值(换句话说,arg舍入为零)。

返回值

讨论

错误处理

按照math_errhandling中的指定报告错误。

如果实现支持IEEE浮点运算(IEC 60559),

  • 当前的舍入模式不起作用。

注意

FE_INEXACT 在截断非整数有限值时可能(但不是必须))。

最大的可表示浮点值是所有标准浮点格式中的精确整数,因此该函数不会自行溢出; 但是intmax_t当存储在整数变量中时,结果可能会溢出任何整数类型(包括)。

从浮点型到整型类型的隐式转换也向零舍入,但仅限于可由目标类型表示的值。

例子

#include <math.h> #include <stdio.h> int main(void) { printf("trunc(+2.7) = %+.1f\n", trunc(2.7) printf("trunc(-2.7) = %+.1f\n", trunc(-2.7) printf("trunc(-0.0) = %+.1f\n", trunc(-0.0) printf("trunc(-Inf) = %+f\n", trunc(-INFINITY) }

可能的输出:

trunc(+2.7) = +2.0 trunc(-2.7) = -2.0 trunc(-0.0) = -0.0 trunc(-Inf) = -inf

参考

  • C11标准(ISO / IEC 9899:2011):

扩展内容

floorfloorphloorl(C99)(C99)计算不大于给定值的最大整数(函数)
ceilceilfceill(C99)(C99)计算不小于给定值的最小整数(函数)
roundlroundllround(C99)(C99)(C99)舍入到最接近的整数,在中途情况下从零开始舍去(函数)

| trunc的C ++文档 |