Funktionen lrint () i C ++ rundar argumentet till ett integrerat värde med det aktuella avrundningsläget.
Funktionen lrint () i C ++ rundar argumentet till ett integrerat värde med det aktuella avrundningsläget. Det aktuella avrundningsläget bestäms av funktionen fesetround()
. Det liknar rint (), men returnerar long int
.
lrint () prototyp (Från och med C ++ 11-standarden)
lång intryck (dubbel x); lång int lrint (float x); lång int lrint (lång dubbel x); lång intryck (T x); // För integrerad typ
Funktionen lrint () tar ett enda argument och returnerar ett typvärde long int
. Denna funktion definieras i rubrikfilen.
lrint () Parametrar
Funktionen lrint () tar ett enda argumentvärde att runda.
lrint () Returvärde
Funktionen lrint () avrundar argumentet x till ett integrerat värde med den avrundningsriktning som anges av fegetround () och returnerar värdet i long int
.
Som standard är avrundningsriktningen inställd på 'närmast'. Avrundningsriktningen kan ställas in på andra värden med funktionen fesetround ().
Exempel 1: Hur fungerar lrint () i 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; )
När du kör programmet blir resultatet:
Avrundning till närmaste (11,87) = 12 Avrundning till närmaste (11,5) = 12 Avrundning nedåt (11,8699) = 11 Avrundning uppåt (33,3201) = 34
Exempel 2: funktion lrint () för integrerade typer
#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; )
När du kör programmet blir resultatet:
Avrundning nedåt (15) = 15
För integrerade värden returnerar samma värde som ingången genom att använda lrint-funktionen. Så det används inte ofta för integrerade värden i praktiken.