nearbyint, nearbyintf, nearbyintl
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Défini dans l'en-tête
<math.h>
|
||
|
float
nearbyintf
(
float
arg
)
;
|
(1) | (depuis C99) |
|
double
nearbyint
(
double
arg
)
;
|
(2) | (depuis C99) |
|
long
double
nearbyintl
(
long
double
arg
)
;
|
(3) | (depuis C99) |
|
Défini dans l'en-tête
<tgmath.h>
|
||
|
#define nearbyint( arg )
|
(4) | (depuis C99) |
nearbyintl
est appelé. Sinon, si
arg
a un type entier ou le type
double
,
nearbyint
est appelé. Sinon,
nearbyintf
est appelé, respectivement.
Table des matières |
Paramètres
| arg | - | valeur à virgule flottante |
Valeur de retour
La valeur entière la plus proche de arg , selon le mode d'arrondi actuel , est renvoyée.
Gestion des erreurs
Cette fonction n'est sujette à aucune des erreurs spécifiées dans
math_errhandling
.
Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE (IEC 60559),
- FE_INEXACT n'est jamais déclenché.
- 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
La seule différence entre
nearbyint
et
rint
est que
nearbyint
ne lève jamais
FE_INEXACT
.
Les plus grandes valeurs représentables en virgule flottante sont des entiers exacts dans tous les formats standard de virgule flottante, donc
nearbyint
ne provoque jamais de dépassement de capacité par lui-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.
Si le mode d'arrondi actuel est FE_TONEAREST , cette fonction arrondit au pair dans les cas médians (comme rint , mais contrairement à round ).
Exemple
#include <fenv.h> #include <math.h> #include <stdio.h> int main(void) { // #pragma STDC FENV_ACCESS ON fesetround(FE_TONEAREST); printf("rounding to nearest:\nnearbyint(+2.3) = %+.1f ", nearbyint(2.3)); printf("nearbyint(+2.5) = %+.1f ", nearbyint(2.5)); printf("nearbyint(+3.5) = %+.1f\n", nearbyint(3.5)); printf("nearbyint(-2.3) = %+.1f ", nearbyint(-2.3)); printf("nearbyint(-2.5) = %+.1f ", nearbyint(-2.5)); printf("nearbyint(-3.5) = %+.1f\n", nearbyint(-3.5)); fesetround(FE_DOWNWARD); printf("rounding down: \nnearbyint(+2.3) = %+.1f ", nearbyint(2.3)); printf("nearbyint(+2.5) = %+.1f ", nearbyint(2.5)); printf("nearbyint(+3.5) = %+.1f\n", nearbyint(3.5)); printf("nearbyint(-2.3) = %+.1f ", nearbyint(-2.3)); printf("nearbyint(-2.5) = %+.1f ", nearbyint(-2.5)); printf("nearbyint(-3.5) = %+.1f\n", nearbyint(-3.5)); printf("nearbyint(-0.0) = %+.1f\n", nearbyint(-0.0)); printf("nearbyint(-Inf) = %+.1f\n", nearbyint(-INFINITY)); }
Sortie :
rounding to nearest: nearbyint(+2.3) = +2.0 nearbyint(+2.5) = +2.0 nearbyint(+3.5) = +4.0 nearbyint(-2.3) = -2.0 nearbyint(-2.5) = -2.0 nearbyint(-3.5) = -4.0 rounding down: nearbyint(+2.3) = +2.0 nearbyint(+2.5) = +2.0 nearbyint(+3.5) = +3.0 nearbyint(-2.3) = -3.0 nearbyint(-2.5) = -3.0 nearbyint(-3.5) = -4.0 nearbyint(-0.0) = -0.0 nearbyint(-Inf) = -inf
Références
- Norme C23 (ISO/CEI 9899:2024) :
-
- 7.12.9.3 Les fonctions nearbyint (p: TBD)
-
- 7.25 Mathématiques génériques de type <tgmath.h> (p: TBD)
-
- F.10.6.3 Les fonctions nearbyint (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.12.9.3 Les fonctions nearbyint (p: TBD)
-
- 7.25 Mathématiques génériques <tgmath.h> (p: TBD)
-
- F.10.6.3 Les fonctions nearbyint (p: TBD)
- Norme C11 (ISO/IEC 9899:2011) :
-
- 7.12.9.3 Les fonctions nearbyint (p: 251-252)
-
- 7.25 Mathématiques génériques de type <tgmath.h> (p: 373-375)
-
- F.10.6.3 Les fonctions nearbyint (p: 526)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 7.12.9.3 Les fonctions nearbyint (p: 232)
-
- 7.22 Mathématiques génériques de type <tgmath.h> (p: 335-337)
-
- F.9.6.3 Les fonctions nearbyint (p: 463)
Voir aussi
|
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
|
arrondit à un entier en utilisant le mode d'arrondi actuel avec
exception si le résultat diffère (fonction) |
|
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
|
arrondit à l'entier le plus proche, en arrondissant à l'opposé de zéro pour les cas médians
(fonction) |
|
(C99)
(C99)
|
obtient ou définit la direction d'arrondi
(fonction) |
|
Documentation C++
pour
nearbyint
|
|