Функція lrint () в C ++ округлює аргумент до інтегрального значення, використовуючи поточний режим округлення.
Функція lrint () в C ++ округлює аргумент до інтегрального значення, використовуючи поточний режим округлення. Поточний режим округлення визначається функцією fesetround()
. Це схоже на rint (), але повертається long int
.
прототип lrint () (за стандартом C ++ 11)
довгий int lrint (подвійний x); довгий int lrint (float x); long 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 повертає те саме значення, що і вхідні дані. Тому на практиці він не використовується для інтегральних величин.