trunc, truncf, truncl
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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) |
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).
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
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
|
(C99)
(C99)
|
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) |
|
Documentación de C++
para
trunc
|
|