命名空间
变体
操作

trunc, truncf, truncl

来自 cppreference.cn
< c‎ | 数值‎ | 数学
 
 
 
常用数学函数
函数
基本操作
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大值/最小值操作
(C99)
(C99)
指数函数
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
幂函数
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
三角函数和双曲函数
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
最近整数浮点数
(C99)(C99)(C99)
trunc
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
浮点数操作
(C99)(C99)
(C99)(C23)
(C99)
窄化操作
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量子与量子指数
十进制重新编码函数
总序和载荷函数
分类
(C99)
(C99)
(C99)
(C23)
误差函数和伽马函数
(C99)
(C99)
(C99)
(C99)
类型
宏常量
特殊浮点值
(C99)(C23)
参数和返回值
错误处理
快速操作指示符
 
定义于头文件 <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-trunc.svg
参数

[编辑] 错误处理

错误按 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.0
trunc(-2.7) = -2.0
trunc(-0.0) = -0.0
trunc(-Inf) = -inf

[编辑] 引用

  • C23 标准 (ISO/IEC 9899:2024)
  • 7.12.9.8 The trunc functions (p: TBD)
  • 7.25 类型通用数学 <tgmath.h> (p: TBD)
  • F.10.6.8 The trunc functions (p: TBD)
  • C17 标准 (ISO/IEC 9899:2018)
  • 7.12.9.8 The trunc functions (p: TBD)
  • 7.25 类型通用数学 <tgmath.h> (p: TBD)
  • F.10.6.8 The trunc functions (p: TBD)
  • C11 标准 (ISO/IEC 9899:2011)
  • 7.12.9.8 The trunc functions (p: 253-254)
  • 7.25 类型通用数学 <tgmath.h> (p: 373-375)
  • F.10.6.8 The trunc functions (p: 528)
  • C99 标准 (ISO/IEC 9899:1999)
  • 7.12.9.8 The trunc functions (p: 234)
  • 7.22 类型通用数学 <tgmath.h> (p: 335-337)
  • F.9.6.8 The trunc functions (p: 464)

[编辑] 参阅

计算不大于给定值的最大整数
(函数) [编辑]
(C99)(C99)
计算不小于给定值的最小整数
(函数) [编辑]
(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)
四舍五入到最接近的整数,在半数情况下远离零
(函数) [编辑]
C++ 文档中关于trunc的部分