std:: nearbyint, std:: nearbyintf, std:: nearbyintl
|
Défini dans l'en-tête
<cmath>
|
||
| (1) | ||
|
float
nearbyint
(
float
num
)
;
double
nearbyint
(
double
num
)
;
|
(jusqu'à C++23) | |
|
/*floating-point-type*/
nearbyint ( /*floating-point-type*/ num ) ; |
(depuis C++23) | |
|
float
nearbyintf
(
float
num
)
;
|
(2) | (depuis C++11) |
|
long
double
nearbyintl
(
long
double
num
)
;
|
(3) | (depuis C++11) |
|
Surcharge SIMD
(depuis C++26)
|
||
|
Défini dans l'en-tête
<simd>
|
||
|
template
<
/*math-floating-point*/
V
>
constexpr
/*deduced-simd-t*/
<
V
>
|
(S) | (depuis C++26) |
|
Surcharges supplémentaires
(depuis C++11)
|
||
|
Défini dans l'en-tête
<cmath>
|
||
|
template
<
class
Integer
>
double nearbyint ( Integer num ) ; |
(A) | |
std::nearbyint
pour tous les types à virgule flottante non qualifiés cv comme type du paramètre.
(depuis C++23)
|
S)
La surcharge SIMD effectue un
std::nearbyint
élément par élément sur
v_num
.
|
(depuis C++26) |
|
A)
Des surcharges supplémentaires sont fournies pour tous les types entiers, qui sont traités comme
double
.
|
(depuis C++11) |
Table des matières |
Paramètres
| num | - | valeur à virgule flottante ou entière |
Valeur de retour
La valeur entière la plus proche de num , selon le mode d'arrondi actuel , est retourné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ée.
- Si num est ±∞, elle est retournée sans modification.
- Si num est ±0, elle est retournée sans modification.
- Si num est NaN, NaN est retourné.
Notes
La seule différence entre
std::nearbyint
et
std::rint
est que
std::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
std::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
std::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 std::rint , mais contrairement à std::round ).
Les surcharges supplémentaires ne sont pas requises d'être fournies exactement comme (A) . Elles doivent seulement être suffisantes pour garantir que pour leur argument num de type entier, std :: nearbyint ( num ) ait le même effet que std :: nearbyint ( static_cast < double > ( num ) ) .
Exemple
#include <cfenv> #include <cmath> #include <iostream> #pragma STDC FENV_ACCESS ON int main() { std::fesetround(FE_TONEAREST); std::cout << "arrondi au plus proche : \n" << "nearbyint(+2.3) = " << std::nearbyint(2.3) << " nearbyint(+2.5) = " << std::nearbyint(2.5) << " nearbyint(+3.5) = " << std::nearbyint(3.5) << '\n' << "nearbyint(-2.3) = " << std::nearbyint(-2.3) << " nearbyint(-2.5) = " << std::nearbyint(-2.5) << " nearbyint(-3.5) = " << std::nearbyint(-3.5) << '\n'; std::fesetround(FE_DOWNWARD); std::cout << "arrondi vers le bas :\n" << "nearbyint(+2.3) = " << std::nearbyint(2.3) << " nearbyint(+2.5) = " << std::nearbyint(2.5) << " nearbyint(+3.5) = " << std::nearbyint(3.5) << '\n' << "nearbyint(-2.3) = " << std::nearbyint(-2.3) << " nearbyint(-2.5) = " << std::nearbyint(-2.5) << " nearbyint(-3.5) = " << std::nearbyint(-3.5) << '\n'; std::cout << "nearbyint(-0.0) = " << std::nearbyint(-0.0) << '\n' << "nearbyint(-Inf) = " << std::nearbyint(-INFINITY) << '\n'; }
Sortie :
arrondi au plus proche : nearbyint(+2.3) = 2 nearbyint(+2.5) = 2 nearbyint(+3.5) = 4 nearbyint(-2.3) = -2 nearbyint(-2.5) = -2 nearbyint(-3.5) = -4 arrondi vers le bas : nearbyint(+2.3) = 2 nearbyint(+2.5) = 2 nearbyint(+3.5) = 3 nearbyint(-2.3) = -3 nearbyint(-2.5) = -3 nearbyint(-3.5) = -4 nearbyint(-0.0) = -0 nearbyint(-Inf) = -inf
Voir aussi
|
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
|
entier le plus proche en utilisant le mode d'arrondi actuel avec
exception si le résultat diffère (fonction) |
|
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
|
entier le plus proche, en arrondissant à l'opposé de zéro pour les cas médians
(fonction) |
|
(C++11)
(C++11)
|
obtient ou définit la direction d'arrondi
(fonction) |
|
Documentation C
pour
nearbyint
|
|