C ++ nearbyint () - C ++ Standard Library

C ++: n toiminto nearbyint () pyöristää argumentin integraaliarvoksi käyttämällä nykyistä pyöristystilaa.

C ++: n toiminto nearbyint () pyöristää argumentin integraaliarvoksi käyttämällä nykyistä pyöristystilaa. Nykyinen pyöristystila määräytyy toiminnon avulla fesetround(). Toiminto nearbyint () on samanlainen kuin rint (), paitsi että se ei nosta FE_INEXACT poikkeuksia rint (): ksi.

FE_INEXACT-poikkeus on liukulukuinen poikkeus, joka tapahtuu, kun operaation tulosta ei esitetä tarkasti pyöristyksen tai asteittaisen alivirran vuoksi.

nearbyint () -prototyyppi (standardin C ++ 11 mukaan)

kaksinkertainen nearbyint (double x); kellua lähellä (float x); pitkä kaksinkertainen läheisyys (pitkä kaksinkertainen x); kaksinkertainen läheisyys (T x); // integraalityypille

Funktio nearbyint () ottaa yhden argumentin ja palauttaa tyypin double, float tai long double type arvon. Tämä toiminto on määritelty otsikkotiedostossa.

nearbyint () -parametrit

Funktio nearbyint () pyöristää yhden argumentin arvon.

nearbyint () Palautusarvo

Funktio nearbyint () pyöristää argumentin x integraaliarvoon käyttämällä fegetround (): n määrittelemää pyöristyssuuntaa ja palauttaa arvon. Oletuksena pyöristyssuunta on asetettu lähimpään. Pyöristyssuunta voidaan asettaa muille arvoille fesetround () -toiminnon avulla.

Esimerkki 1: Kuinka nearbyint () toimii C ++: ssa?

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

Kun suoritat ohjelmaa, tulos on:

 Pyöristäminen lähimpään (11,87) = 12 Pyöristäminen lähimpään (11,5) = 12 Pyöristäminen alaspäin (17,87) = 17 Pyöristäminen ylöspäin (33,3401) = 34

Esimerkki 2: functionintintint () integraalityypeille

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

Kun suoritat ohjelmaa, tulos on:

 Pyöristäminen alaspäin (15) = 15 

Integraaliarvoille nearbyintfunktion soveltaminen palauttaa saman arvon kuin tulo. Joten sitä ei käytetä yleisesti integraaliarvoissa käytännössä.

Mielenkiintoisia artikkeleita...