Funcția Nearbyint () din C ++ rotunjește argumentul la o valoare integrală utilizând modul curent de rotunjire.
Funcția Nearbyint () din C ++ rotunjește argumentul la o valoare integrală utilizând modul curent de rotunjire. Modul curent de rotunjire este determinat de funcție fesetround()
. Funcția Nearbyint () este similară cu rint (), cu excepția faptului că nu ridică excepții FE_INEXACT ca rint ().
O excepție FE_INEXACT este o excepție în virgulă mobilă care apare atunci când rezultatul unei operații nu este reprezentat exact din cauza rotunjirii sau a debordării treptate.
vicinuint () prototip (Începând cu standardul C ++ 11)
dublu în apropiere (dublu x); float în apropiereint (float x); lung dublu în apropiere (lung dublu x); dublu în apropiere (T x); // Pentru tip integral
Funcția Nearbyint () ia un singur argument și returnează o valoare de tip double, float sau long type. Această funcție este definită în fișierul antet.
Nearbyint () Parametri
Funcția Nearbyint () ia o singură valoare de argument pentru a rotunji.
Nearbyint () Valoare returnată
Funcția Nearbyint () rotunjește argumentul x la o valoare integrală, utilizând direcția de rotunjire specificată de fegetround () și returnează valoarea. În mod implicit, direcția de rotunjire este setată la „la-cel mai apropiat”. Direcția de rotunjire poate fi setată la alte valori utilizând funcția fesetround ().
Exemplul 1: Cât de aproape funcționează () în 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; )
Când rulați programul, ieșirea va fi:
Rotunjire la cel mai apropiat (11,87) = 12 Rotunjire la cel mai apropiat (11,5) = 12 Rotunjire în jos (17,87) = 17 Rotunjire în sus (33,3401) = 34
Exemplul 2: funcția vicintint () pentru tipurile integrale
#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; )
Când rulați programul, ieșirea va fi:
Rotunjirea în jos (15) = 15
Pentru valorile integrale, aplicarea nearbyint
funcției returnează aceeași valoare ca intrarea. Deci nu este folosit în mod obișnuit pentru valori integrale în practică.