C ++ nearint () - C ++ Standardbibliothek

Die Funktion nearint () in C ++ rundet das Argument im aktuellen Rundungsmodus auf einen ganzzahligen Wert.

Die Funktion nearint () in C ++ rundet das Argument im aktuellen Rundungsmodus auf einen ganzzahligen Wert. Der aktuelle Rundungsmodus wird durch die Funktion bestimmt fesetround(). Die Funktion nearint () ähnelt rint (), löst jedoch keine FE_INEXACT-Ausnahmen als rint () aus.

Eine FE_INEXACT-Ausnahme ist eine Gleitkomma-Ausnahme, die auftritt, wenn das Ergebnis einer Operation aufgrund von Rundungen oder allmählichem Unterlauf nicht genau dargestellt wird.

Prototyp in der Nähe () (Stand C ++ 11)

doppelt in der Nähe (doppelt x); float nearint (float x); langes doppeltes in der Nähe (langes doppeltes x); doppelt in der Nähe (T x); // Für integralen Typ

Die Funktion nearint () verwendet ein einzelnes Argument und gibt einen Wert vom Typ double, float oder long double zurück. Diese Funktion ist in der Header-Datei definiert.

nearint () Parameter

Die Funktion nearint () verwendet einen einzelnen Argumentwert zum Runden.

nearint () Rückgabewert

Die Funktion nearint () rundet das Argument x unter Verwendung der durch fegetround () angegebenen Rundungsrichtung auf einen ganzzahligen Wert und gibt den Wert zurück. Standardmäßig ist die Rundungsrichtung auf "am nächsten" eingestellt. Die Rundungsrichtung kann mit der Funktion fesetround () auf andere Werte eingestellt werden.

Beispiel 1: Wie funktioniert 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; )

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 Rundung auf den nächsten (11,87) = 12 Rundung auf den nächsten (11,5) = 12 Rundung nach unten (17,87) = 17 Rundung nach oben (33,3401) = 34

Beispiel 2: Funktion nearint () für Integraltypen

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

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 Abrunden nach unten (15) = 15 

Bei Integralwerten gibt das Anwenden der nearbyintFunktion den gleichen Wert wie die Eingabe zurück. Daher wird es in der Praxis nicht häufig für ganzzahlige Werte verwendet.

Interessante Beiträge...