De functie lrint () in C ++ rondt het argument af op een integrale waarde met behulp van de huidige afrondingsmodus.
De functie lrint () in C ++ rondt het argument af op een integrale waarde met behulp van de huidige afrondingsmodus. De huidige afrondingsmodus wordt bepaald door de functie fesetround()
. Het is vergelijkbaar met rint (), maar keert terug long int
.
lrint () prototype (vanaf C ++ 11-standaard)
lange int lrint (dubbele x); long int lrint (float x); lange int lrint (lange dubbele x); lange int lrint (T x); // Voor integraal type
De functie lrint () accepteert één argument en retourneert de waarde van het type long int
. Deze functie is gedefinieerd in het header-bestand.
lrint () Parameters
De functie lrint () gebruikt een enkele argumentwaarde om af te ronden.
lrint () Retourwaarde
De functie lrint () rondt het argument x af op een integrale waarde, met behulp van de afrondingsrichting gespecificeerd door fegetround () en retourneert de waarde in long int
.
Standaard is de afrondingsrichting ingesteld op 'naar dichtstbijzijnde'. De afrondingsrichting kan worden ingesteld op andere waarden met de functie fesetround ().
Voorbeeld 1: Hoe werkt lrint () in 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; )
Wanneer u het programma uitvoert, is de uitvoer:
Afronden op dichtstbijzijnde (11,87) = 12 Afronding op dichtstbijzijnde (11,5) = 12 Afronding naar beneden (11,8699) = 11 Afronding naar boven (33,3201) = 34
Voorbeeld 2: functie lrint () voor integrale typen
#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; )
Wanneer u het programma uitvoert, is de uitvoer:
Naar beneden afronden (15) = 15
Voor integrale waarden retourneert het toepassen van de functie lrint dezelfde waarde als de invoer. Het wordt dus in de praktijk niet vaak gebruikt voor integrale waarden.