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 nearbyint
funktion soveltaminen palauttaa saman arvon kuin tulo. Joten sitä ei käytetä yleisesti integraaliarvoissa käytännössä.