C ++ nearint () - C ++ standaardbibliotheek

De functie nearint () in C ++ rondt het argument af op een integrale waarde met behulp van de huidige afrondingsmodus.

De functie nearint () 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(). De functie nearint () is vergelijkbaar met rint (), behalve dat het FE_INEXACT-uitzonderingen niet oproept als rint ().

Een FE_INEXACT-uitzondering is een drijvende-komma-uitzondering die optreedt wanneer het resultaat van een bewerking niet exact wordt weergegeven vanwege afronding of geleidelijke underflow.

nearint () prototype (vanaf C ++ 11 standaard)

dubbele nearint (dubbele x); float nearint (float x); lange dubbele nearint (lange dubbele x); dubbele nearint (T x); // Voor integraal type

De functie nearint () heeft een enkel argument en retourneert een waarde van het type double, float of long double type. Deze functie is gedefinieerd in het header-bestand.

nearint () Parameters

De functie nearint () heeft een enkele argumentwaarde nodig om af te ronden.

nearint () Retourwaarde

De functie nearint () rondt het argument x af op een integrale waarde, met behulp van de afrondingsrichting gespecificeerd door fegetround (), en retourneert de waarde. Standaard is de afrondingsrichting ingesteld op 'naar dichtstbijzijnde'. De afrondingsrichting kan worden ingesteld op andere waarden met de functie fesetround ().

Voorbeeld 1: hoe werkt nearint () 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, 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; )

Wanneer u het programma uitvoert, is de uitvoer:

 Afronden op dichtstbijzijnde (11,87) = 12 Afronding op dichtstbijzijnde (11,5) = 12 Afronding naar beneden (17,87) = 17 Afronding naar boven (33,3401) = 34

Voorbeeld 2: functie nearint () voor integrale typen

 #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; ) 

Wanneer u het programma uitvoert, is de uitvoer:

 Naar beneden afronden (15) = 15 

Voor integrale waarden nearbyintretourneert het toepassen van de functie dezelfde waarde als de invoer. Het wordt dus in de praktijk niet vaak gebruikt voor integrale waarden.

Interessante artikelen...