C ++ lrint () - C ++ standartinė biblioteka

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

Funkcija „lrint“ (C ++) suapvalina argumentą iki integralo vertės, naudodama dabartinį apvalinimo režimą. Dabartinį apvalinimo režimą nustato funkcija fesetround(). Tai panašu į rint (), bet grįžta long int.

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

ilgas int lrint (dvigubas x); ilgas int lrint (plūdinis x); ilgas int lrint (ilgas dvigubas x); ilgas int lrint (T x); // integraliniam tipui

Funkcija lrint () užima vieną argumentą ir pateikia tipo reikšmę long int. Ši funkcija apibrėžta antraštės faile.

lrint () parametrai

Funkcija „lrint“) suapvalina vieną argumento reikšmę.

lrint () Grąžinimo vertė

Funkcija „lrint“) suapvalina argumentą x iki vientisos vertės, naudodama „fegetround“ () nurodytą apvalinimo kryptį, ir grąžina reikšmę long int.

Pagal numatytuosius nustatymus apvalinimo kryptis nustatyta kaip „iki artimiausio“. Suapvalinimo kryptį galima nustatyti į kitas reikšmes, naudojant funkciją fesetround ().

1 pavyzdys: Kaip lrint () 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; long int result; result = lrint(x); cout << "Rounding to-nearest (" << x << ") = " << result << endl; // mid-way values are rounded off to higher integer x = 11.5; result = lrint(x); cout << "Rounding to-nearest (" << x << ") = " << result << endl; // setting rounding direction to DOWNWARD fesetround(FE_DOWNWARD); x = 11.87; result = lrint(x); cout << "Rounding downward (" << x << ") = " << result << endl; // setting rounding direction to UPWARD fesetround(FE_UPWARD); x = 33.32; result = lrint(x); cout << "Rounding upward (" << x << ") = " << result << endl; return 0; )

Kai paleisite programą, išvestis bus:

 Suapvalinimas iki artimiausio (11,87) = 12 Apvalinimas iki artimiausio (11,5) = 12 Apvalinimas žemyn (11,8699) = 11 Apvalinimas į viršų (33,3201) = 34

2 pavyzdys: funkcija lrint () integraliems tipams

 #include #include #include using namespace std; int main() ( int x = 15; long int result; // setting rounding direction to DOWNWARD fesetround(FE_DOWNWARD); result = lrint(x); cout << "Rounding downward (" << x << ") = " << result << endl; return 0; ) 

Kai paleisite programą, išvestis bus:

 Apvalinimas žemyn (15) = 15 

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

Įdomios straipsniai...