Namespaces
Variants

trunc, truncf, truncl

From cppreference.net
< c ‎ | numeric ‎ | math
Common mathematical functions
Functions
Basic operations
(C99)
(C99)
(C99)
(C99) (C99) (C99) (C23)
Maximum/minimum operations
Exponential functions
Power functions
Trigonometric and hyperbolic functions
Nearest integer floating-point
(C99) (C99) (C99)
trunc
(C99)

(C99) (C99) (C99)
(C23) (C23) (C23) (C23)
Floating-point manipulation
Narrowing operations
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quantum and quantum exponent
Decimal re-encoding functions
Total order and payload functions
Classification
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Types
Macro constants
Special floating-point values
Arguments and return values
Error handling
Fast operation indicators
Definido en el encabezado <math.h>
float truncf ( float arg ) ;
(1) (desde C99)
double trunc ( double arg ) ;
(2) (desde C99)
long double truncl ( long double arg ) ;
(3) (desde C99)
Definido en el encabezado <tgmath.h>
#define trunc( arg )
(4) (desde C99)
1-3) Calcula el entero más cercano no mayor en magnitud que arg .
4) Macro genérico de tipos: Si arg tiene tipo long double , truncl es llamado. De lo contrario, si arg tiene tipo entero o el tipo double , trunc es llamado. De lo contrario, truncf es llamado.

Contenidos

Parámetros

arg - valor de punto flotante

Valor de retorno

Si no ocurren errores, se devuelve el valor entero más cercano no mayor en magnitud que arg (en otras palabras, arg redondeado hacia cero).

Valor de retorno
math-trunc.svg
Argumento

Manejo de errores

Los errores se reportan como se especifica en math_errhandling .

Si la implementación soporta aritmética de punto flotante IEEE (IEC 60559):

  • El modo de redondeo actual no tiene efecto .
  • Si arg es ±∞, se devuelve sin modificaciones.
  • Si arg es ±0, se devuelve sin modificaciones.
  • Si arg es NaN, se devuelve NaN.

Notas

FE_INEXACT puede (pero no está obligado a) activarse al truncar un valor finito no entero.

Los valores de punto flotante más grandes representables son enteros exactos en todos los formatos estándar de punto flotante, por lo que esta función nunca desborda por sí misma; sin embargo, el resultado puede desbordar cualquier tipo entero (incluyendo intmax_t ), cuando se almacena en una variable entera.

La conversión implícita de punto flotante a tipos enteros también redondea hacia cero, pero está limitada a los valores que pueden ser representados por el tipo de destino.

Ejemplo

#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));
}

Salida posible:

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

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.12.9.8 Las funciones trunc (p: TBD)
  • 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: TBD)
  • F.10.6.8 Las funciones trunc (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.12.9.8 Las funciones trunc (p: TBD)
  • 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: TBD)
  • F.10.6.8 Las funciones trunc (p: TBD)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.12.9.8 Las funciones trunc (p: 253-254)
  • 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: 373-375)
  • F.10.6.8 Las funciones trunc (p: 528)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.12.9.8 Las funciones trunc (p: 234)
  • 7.22 Matemáticas genéricas de tipo <tgmath.h> (p: 335-337)
  • F.9.6.8 Las funciones trunc (p: 464)

Véase también

calcula el entero más grande no mayor que el valor dado
(función)
(C99) (C99)
calcula el entero más pequeño no menor que el valor dado
(función)
(C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99)
redondea al entero más cercano, redondeando lejos de cero en casos intermedios
(función)