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

Funkcija „nearbyint“ (C ++) suapvalina argumentą iki vientisos vertės, naudodama dabartinį apvalinimo režimą.

Funkcija „nearbyint“ (C ++) suapvalina argumentą iki vientisos vertės, naudodama dabartinį apvalinimo režimą. Dabartinį apvalinimo režimą nustato funkcija fesetround(). Funkcija „nearbyint“ () yra panaši į „rint“ (), išskyrus tai, kad ji nekelia FE_INEXACT išimčių kaip „rint“ ().

FE_INEXACT išimtis yra slankiojo kablelio išimtis, atsirandanti, kai operacijos rezultatas nėra tiksliai pavaizduotas dėl apvalinimo ar laipsniško nepakankamo srauto.

nearbyint () prototipas (Pagal C ++ 11 standartą)

dvigubas netoliese (dvigubas x); plūduriuoti netoliese (plūdė x); ilgas dvigubas netoliese (ilgas dvigubas x); dvigubas netoliese (T x); // integraliniam tipui

Funkcija nearbyint () užima vieną argumentą ir pateikia tipo double, float arba long double type reikšmę. Ši funkcija apibrėžta antraštės faile.

nearbyint () Parametrai

Funkcija nearbyint () suapvalina vieną argumento reikšmę.

nearbyint () Grąžinimo vertė

Funkcija „nearbyint“ () argumentą x suapvalina iki vientisos vertės, naudodama apvalinimo kryptį, nurodytą fegetround (), ir grąžina vertę. Pagal numatytuosius nustatymus apvalinimo kryptis nustatyta kaip „iki artimiausio“. Suapvalinimo kryptį galima nustatyti į kitas reikšmes, naudojant funkciją fesetround ().

1 pavyzdys: Kaip „Cint+“ veikia „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; )

Kai paleisite programą, išvestis bus:

 Apvalinimas iki artimiausio (11,87) = 12 Apvalinimas iki artimiausio (11,5) = 12 Apvalinimas žemyn (17,87) = 17 Apvalinimas aukštyn (33,3401) = 34

2 pavyzdys: integralint tipų funkcija nearbyint ()

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

Kai paleisite programą, išvestis bus:

 Apvalinimas žemyn (15) = 15 

Integraliosioms reikšmėms pritaikius nearbyintfunkciją, gaunama ta pati reikšmė kaip ir įvestyje. Taigi praktiškai jis nėra naudojamas vientisoms vertėms.

Įdomios straipsniai...