C ++ lrint () - Стандартная библиотека C ++

Функция lrint () в C ++ округляет аргумент до целого значения, используя текущий режим округления.

Функция lrint () в C ++ округляет аргумент до целого значения, используя текущий режим округления. Текущий режим округления определяется функцией fesetround(). Он похож на rint (), но возвращает long int.

lrint () прототип (согласно стандарту C ++ 11)

long int lrint (двойной x); long int lrint (float x); long int lrint (длинный двойной x); длинный int lrint (T x); // Для целочисленного типа

Функция lrint () принимает единственный аргумент и возвращает значение типа long int. Эта функция определена в заголовочном файле.

lrint () Параметры

Функция lrint () принимает значение одного аргумента для округления.

lrint () Возвращаемое значение

Функция lrint () округляет аргумент x до целого значения, используя направление округления, указанное fegetround (), и возвращает значение в формате long int.

По умолчанию для направления округления установлено значение «к ближайшему». Для направления округления можно задать другие значения с помощью функции fesetround ().

Пример 1. Как lrint () работает в 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; )

Когда вы запустите программу, вывод будет:

 Округление до ближайшего (11,87) = 12 Округление до ближайшего (11,5) = 12 Округление в меньшую сторону (11,8699) = 11 Округление в большую сторону (33,3201) = 34

Пример 2: функция lrint () для целочисленных типов

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

Когда вы запустите программу, вывод будет:

 Округление в меньшую сторону (15) = 15 

Для целых значений применение функции lrint возвращает то же значение, что и ввод. Поэтому на практике он обычно не используется для целочисленных значений.

Интересные статьи...