truncl
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 ++文档 |