C ++ nearint () - Bibliothèque standard C ++

La fonction nearint () en C ++ arrondit l'argument à une valeur intégrale en utilisant le mode d'arrondi actuel.

La fonction nearint () en C ++ arrondit l'argument à une valeur intégrale en utilisant le mode d'arrondi actuel. Le mode d'arrondi actuel est déterminé par la fonction fesetround(). La fonction nearint () est similaire à rint (), sauf qu'elle ne lève pas d'exceptions FE_INEXACT comme rint ().

Une exception FE_INEXACT est une exception à virgule flottante qui se produit lorsque le résultat d'une opération n'est pas représenté exactement en raison d'un arrondi ou d'un dépassement progressif.

prototype à proximité () (à partir de la norme C ++ 11)

double nearint (double x); float nearint (float x); long double nearint (long double x); double intimité (T x); // Pour le type intégral

La fonction nearint () prend un seul argument et renvoie une valeur de type double, float ou long double type. Cette fonction est définie dans le fichier d'en-tête.

Paramètres à proximité ()

La fonction nearint () prend une seule valeur d'argument pour arrondir.

nearint () Valeur de retour

La fonction nearint () arrondit l'argument x à une valeur intégrale, en utilisant la direction d'arrondi spécifiée par fegetround () et renvoie la valeur. Par défaut, la direction d'arrondi est définie sur «au plus proche». La direction d'arrondi peut être définie sur d'autres valeurs à l'aide de la fonction fesetround ().

Exemple 1: Comment fonctionne la fonction de proximitéint () en C ++?

 #include #include #include using namespace std; int main() ( // by default, rounding direction is to-nearest i.e. fesetround(FE_TONEAREST) double x = 11.87, result; result = nearbyint(x); cout << "Rounding to-nearest (" << x << ") = " << result << endl; // upper value is taken for mid-way values x = 11.5; result = nearbyint(x); cout << "Rounding to-nearest (" << x << ") = " << result << endl; // setting rounding direction to DOWNWARD fesetround(FE_DOWNWARD); x = 17.87; result = nearbyint(x); cout << "Rounding downward (" << x << ") = " << nearbyint(x) << endl; // setting rounding direction to UPWARD x = 33.34; fesetround(FE_UPWARD); result = nearbyint(x); cout << "Rounding upward (" << x << ") = " << result << endl; return 0; )

Lorsque vous exécutez le programme, la sortie sera:

 Arrondi au plus proche (11,87) = 12 Arrondi au plus proche (11,5) = 12 Arrondi à la baisse (17,87) = 17 Arrondi à la hausse (33,3401) = 34

Exemple 2: fonction nearint () pour les types intégraux

 #include #include #include using namespace std; int main() ( int x = 15; double result; // setting rounding direction to DOWNWARD fesetround(FE_DOWNWARD); result = nearbyint(x); cout << "Rounding downward (" << x << ") = " << result << endl; return 0; ) 

Lorsque vous exécutez le programme, la sortie sera:

 Arrondi à la baisse (15) = 15 

Pour les valeurs intégrales, l'application de la nearbyintfonction renvoie la même valeur que l'entrée. Il n'est donc pas couramment utilisé pour les valeurs intégrales dans la pratique.

Articles intéressants...