trunc, truncf, truncl
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Défini dans l'en-tête
<math.h>
|
||
|
float
truncf
(
float
arg
)
;
|
(1) | (depuis C99) |
|
double
trunc
(
double
arg
)
;
|
(2) | (depuis C99) |
|
long
double
truncl
(
long
double
arg
)
;
|
(3) | (depuis C99) |
|
Défini dans l'en-tête
<tgmath.h>
|
||
|
#define trunc( arg )
|
(4) | (depuis C99) |
truncl
est appelé. Sinon, si
arg
a un type entier ou le type
double
,
trunc
est appelé. Sinon,
truncf
est appelé.
Table des matières |
Paramètres
| arg | - | valeur en virgule flottante |
Valeur de retour
Si aucune erreur ne se produit, la valeur entière la plus proche dont la magnitude n'est pas supérieure à arg (en d'autres termes, arg arrondie vers zéro), est retournée.
Gestion des erreurs
Les erreurs sont signalées comme spécifié dans
math_errhandling
.
Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE (IEC 60559) :
- Le mode d'arrondi actuel n'a aucun effet.
- Si arg est ±∞, il est retourné, non modifié.
- Si arg est ±0, il est retourné, non modifié.
- Si arg est NaN, NaN est retourné.
Notes
FE_INEXACT peut être (mais n'est pas obligatoirement) déclenchée lors de la troncation d'une valeur finie non entière.
Les plus grandes valeurs représentables en virgule flottante sont des entiers exacts dans tous les formats standard de virgule flottante, donc cette fonction ne provoque jamais de dépassement de capacité par elle-même ; cependant le résultat peut dépasser la capacité de tout type entier (y compris intmax_t ), lorsqu'il est stocké dans une variable entière.
La conversion implicite des nombres à virgule flottante vers les types entiers arrondit également vers zéro, mais est limitée aux valeurs pouvant être représentées par le type cible.
Exemple
Sortie possible :
trunc(+2.7) = +2.0 trunc(-2.7) = -2.0 trunc(-0.0) = -0.0 trunc(-Inf) = -inf
Références
- Norme C23 (ISO/CEI 9899:2024) :
-
- 7.12.9.8 Les fonctions trunc (p: TBD)
-
- 7.25 Mathématiques génériques de type <tgmath.h> (p: TBD)
-
- F.10.6.8 Les fonctions trunc (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.12.9.8 Les fonctions trunc (p: TBD)
-
- 7.25 Mathématiques génériques de type <tgmath.h> (p: TBD)
-
- F.10.6.8 Les fonctions trunc (p: TBD)
- Norme C11 (ISO/CEI 9899:2011) :
-
- 7.12.9.8 Les fonctions trunc (p: 253-254)
-
- 7.25 Mathématiques génériques de type <tgmath.h> (p: 373-375)
-
- F.10.6.8 Les fonctions trunc (p: 528)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 7.12.9.8 Les fonctions trunc (p: 234)
-
- 7.22 Mathématiques génériques de type <tgmath.h> (p: 335-337)
-
- F.9.6.8 Les fonctions trunc (p: 464)
Voir aussi
|
(C99)
(C99)
|
calcule le plus grand entier inférieur ou égal à la valeur donnée
(fonction) |
|
(C99)
(C99)
|
calcule le plus petit entier supérieur ou égal à la valeur donnée
(fonction) |
|
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
|
arrondit à l'entier le plus proche, en s'éloignant de zéro pour les cas médians
(fonction) |
|
Documentation C++
pour
trunc
|
|