Funkcija nearbyint () v C ++ zaokroži argument na integralno vrednost s trenutnim načinom zaokroževanja.
Funkcija nearbyint () v C ++ zaokroži argument na integralno vrednost s trenutnim načinom zaokroževanja. Trenutni način zaokroževanja določa funkcija fesetround()
. Funkcija Nearint () je podobna funkciji rint (), le da ne povzroča izjem FE_INEXACT kot rint ().
Izjema FE_INEXACT je izjema s plavajočo vejico, ki se pojavi, ko rezultat operacije ni natančno predstavljen zaradi zaokroževanja ali postopnega podlivanja.
nearbyint () prototip (od standarda C ++ 11)
dvojno v bližini (dvojno x); float nearbyint (float x); dolga dvojna v bližini (dolga dvojna x); dvojno v bližini (T x); // Za integralni tip
Funkcija nearbyint () sprejme en argument in vrne vrednost tipa double, float ali long double type. Ta funkcija je definirana v datoteki glave.
nearbyint () Parametri
Funkcija nearbyint () zavzame eno vrednost argumenta.
nearbyint () Vrnjena vrednost
Funkcija nearbyint () zaokroži argument x na integralno vrednost s pomočjo smeri zaokroževanja, ki jo določa fegetround (), in vrne vrednost. Privzeto je smer zaokroževanja nastavljena na „najbližje“. Smer zaokroževanja lahko nastavite na druge vrednosti s funkcijo fesetround ().
Primer 1: Kako nearbyint () deluje v jeziku 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; )
Ko zaženete program, bo rezultat:
Zaokroževanje na najbližje (11,87) = 12 Zaokroževanje na najbližje (11,5) = 12 Zaokroževanje navzdol (17,87) = 17 Zaokroževanje navzgor (33,3401) = 34
Primer 2: funkcija nearbyint () za integralne tipe
#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; )
Ko zaženete program, bo rezultat:
Zaokroževanje navzdol (15) = 15
Za integralne vrednosti uporaba nearbyint
funkcije vrne enako vrednost kot vhod. Zato se v praksi pogosto ne uporablja za integralne vrednosti.