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

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

La fonction lrint () 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(). Il est similaire à rint (), mais retourne long int.

prototype lrint () (à partir de la norme C ++ 11)

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

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

Paramètres de lrint ()

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

lrint () Valeur de retour

La fonction lrint () arrondit l'argument x à une valeur intégrale, en utilisant la direction d'arrondi spécifiée par fegetround () et renvoie la valeur dans long int.

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 lrint () 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; long int result; result = lrint(x); cout << "Rounding to-nearest (" << x << ") = " << result << endl; // mid-way values are rounded off to higher integer x = 11.5; result = lrint(x); cout << "Rounding to-nearest (" << x << ") = " << result << endl; // setting rounding direction to DOWNWARD fesetround(FE_DOWNWARD); x = 11.87; result = lrint(x); cout << "Rounding downward (" << x << ") = " << result << endl; // setting rounding direction to UPWARD fesetround(FE_UPWARD); x = 33.32; result = lrint(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 (11,8699) = 11 Arrondi à la hausse (33,3201) = 34

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

 #include #include #include using namespace std; int main() ( int x = 15; long int result; // setting rounding direction to DOWNWARD fesetround(FE_DOWNWARD); result = lrint(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 fonction lrint 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...