C ++ nearbyint () - štandardná knižnica C ++

Funkcia nearbyint () v C ++ zaokrúhľuje argument na integrálnu hodnotu pomocou aktuálneho režimu zaokrúhľovania.

Funkcia nearbyint () v C ++ zaokrúhľuje argument na integrálnu hodnotu pomocou aktuálneho režimu zaokrúhľovania. Aktuálny režim zaokrúhľovania je určený funkciou fesetround(). Funkcia nearbyint () je podobná rint (), až na to, že nezvyšuje výnimky FE_INEXACT ako rint ().

Výnimka FE_INEXACT je výnimka s pohyblivou rádovou čiarkou, ktorá nastane, keď výsledok operácie nie je znázornený presne kvôli zaokrúhľovaniu alebo postupnému podtečeniu.

prototyp nearbyint () (podľa štandardu C ++ 11)

dvojitý v blízkostiint (dvojitý x); float nearbyint (float x); dlhé dvojité nablízku (dlhé dvojité x); dvojitý blízkyint (T x); // Pre integrálny typ

Funkcia nearbyint () vezme jeden argument a vráti hodnotu typu double, float alebo long double type. Táto funkcia je definovaná v hlavičkovom súbore.

nearbyint () parametre

Funkcia nearbyint () zaokrúhli hodnotu jedného argumentu.

nearbyint () Vrátiť hodnotu

Funkcia nearbyint () zaokrúhli argument x na integrálnu hodnotu pomocou smeru zaokrúhľovania určeného parametrom fegetround () a vráti hodnotu. Predvolene je smer zaokrúhľovania nastavený na „k najbližšiemu“. Smer zaokrúhľovania je možné nastaviť na ďalšie hodnoty pomocou funkcie fesetround ().

Príklad 1: Ako nearbyint () funguje v 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; )

Po spustení programu bude výstup:

 Zaokrúhlenie na najbližšiu (11,87) = 12 Zaokrúhlenie na najbližšiu (11,5) = 12 Zaokrúhlenie nadol (17,87) = 17 Zaokrúhlenie nahor (33,3401) = 34

Príklad 2: Funkcia nearbyint () pre integrálne typy

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

Po spustení programu bude výstup:

 Zaokrúhlenie nadol (15) = 15 

Pri integrálnych hodnotách sa pri aplikácii nearbyintfunkcie vráti rovnaká hodnota ako pri vstupe. V praxi sa teda pre integrálne hodnoty bežne nepoužíva.

Zaujímavé články...