©
This document uses PHP Chinese website manual Release
在头文件<math.h>中定义 | ||
---|---|---|
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),
当前的舍入模式不起作用。
如果arg
是±∞,则返回,未修改
如果arg
为±0,则返回,未修改
如果arg是NaN,则返回NaN
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.0trunc(-2.7) = -2.0trunc(-0.0) = -0.0trunc(-Inf) = -inf
C11标准(ISO / IEC 9899:2011):
7.12.9.8截断函数(p:253-254)
7.25类型通用数学<tgmath.h>(p:373-375)
F.10.6.8截断函数(p:528)
C99标准(ISO / IEC 9899:1999):
7.12.9.8截断函数(p:234)
7.22类型通用数学<tgmath.h>(p:335-337)
F.9.6.8 trunc函数(p:464)
floorfloorphloorl(C99)(C99) | 计算不大于给定值的最大整数(函数) |
---|---|
ceilceilfceill(C99)(C99) | 计算不小于给定值的最小整数(函数) |
roundlroundllround(C99)(C99)(C99) | 舍入到最接近的整数,在中途情况下从零开始舍去(函数) |
| trunc的C ++文档 |