C ++ Nearbyint () - Biblioteca standard C ++

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 nearbyintfuncției returnează aceeași valoare ca intrarea. Deci nu este folosit în mod obișnuit pentru valori integrale în practică.

Articole interesante...