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.