Функція nearbyint () в C ++ округлює аргумент до інтегрального значення, використовуючи поточний режим округлення.
Функція nearbyint () в C ++ округлює аргумент до інтегрального значення, використовуючи поточний режим округлення. Поточний режим округлення визначається функцією fesetround()
. Функція nearbyint () подібна до rint (), за винятком того, що вона не викликає винятків FE_INEXACT як rint ().
Виняток FE_INEXACT - це виняток з плаваючою комою, який виникає, коли результат операції не представлений точно через округлення або поступове недоповнення.
прототип nearbyint () (за стандартом C ++ 11)
подвійний nearbyint (подвійний x); float nearbyint (float x); довгий подвійний nearbyint (довгий подвійний x); подвійний nearbyint (T x); // Для цілісного типу
Функція nearbyint () приймає один аргумент і повертає значення типу double, float або long double type. Ця функція визначена у файлі заголовка.
Параметри nearbyint ()
Функція nearbyint () приймає значення одного аргументу для округлення.
nearbyint () Повертається значення
Функція nearbyint () округлює аргумент x до інтегрального значення, використовуючи напрямок округлення, вказаний fegetround (), і повертає значення. За замовчуванням для напрямку округлення встановлено значення "до найближчого". Напрямок округлення можна встановити на інші значення за допомогою функції fesetround ().
Приклад 1: Як функція nearbyint () працює в 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; )
Коли ви запускаєте програму, результат буде:
Округлення до найближчого (11,87) = 12 Округлення до найближчого (11,5) = 12 Округлення вниз (17,87) = 17 Округлення вгору (33,3401) = 34
Приклад 2: функція 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; )
Коли ви запускаєте програму, результат буде:
Округлення вниз (15) = 15
Для інтегральних значень застосування nearbyint
функції повертає те саме значення, що і вхідні дані. Тому на практиці він не використовується для інтегральних величин.