Функцията nearbyint () в C ++ закръглява аргумента до интегрална стойност, използвайки текущия режим на закръгляване.
Функцията nearbyint () в C ++ закръглява аргумента до интегрална стойност, използвайки текущия режим на закръгляване. Текущият режим на закръгляване се определя от функцията fesetround()
. Функцията Nearint () е подобна на rint (), с изключение на това, че не предизвиква FE_INEXACT изключения като rint ().
Изключение FE_INEXACT е изключение с плаваща запетая, което възниква, когато резултатът от операция не е представен точно поради закръгляване или постепенно подливане.
nearbyint () прототип (от C ++ 11 стандарт)
двойно приближение (двойно x); float nearbyint (float x); long double nearbyint (long double x); двойно приближение (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
функцията връща същата стойност като входа. Така че на практика не се използва често за интегрални стойности.