fegetround – опрос установленных правил округления
Синтаксис:
#include < fenv.h >
int fegetround (void);
Аргументы:
Нет аргументов.
Возвращаемое значение:
Код установленного режима округления.
Описание:
Функция возвращает установленный режим округления, используемый в функциях rint() и nearbyint().
Всего существует четыре разжима округления:
FE_DOWNWARD (код 1024) – округлять до наибольшего целого меньшего или равного округляемому значению.
FE_TONEAREST (код 0) – округлять до ближайшего целого числа, если округляемый аргумент отстоит от наибольшего и наименьшего целого на одну и ту же величину, то округления произведется до ближайшего большего целого числа. Этот режим установлен по умолчанию.
FE_TOWARDZERO (код 3072) – округлять до целого числа в сторону нуля. То есть, если число отрицательное округление будет происходить до наименьшего целого большего или равного округляемому значению. Если число положительное, то округление будет происходить до наибольшего целого меньшего или равного округляемому значению.
FE_UPWARD (код 2048) – округлять до наименьшего целого большего или равного округляемому значению.
Пример:
В примере определяется установленное по умолчанию правило округления.
#include < stdio.h > //Для printf
#include < fenv.h > //Для fegetround
int main (void)
{
//Переменная в которую будет помещен считанный код
//текущего режима округления
int r;
//Считываем код режима округления
r=fegetround();
//Выводим на экран название режима округления:
printf (“Режим округления: ”);
switch (r)
{
case FE_DOWNWARD: puts (“DOWNWARD”); break;
case FE_TONEAREST: puts (“TONEAREST”); break;
case FE_TOWARDZERO: puts (“TOWARDZERO”); break;
case FE_UPWARD: puts (“UPWARD”); break;
default: puts (“неизвестный режим”); break;
}
return 0;
}
| |
Результат:
Режим округления: TONEAREST
|
Смотри так же:
ceil, ceilf, ceill
floor, floorf, floorl
round, roundf, roundl
lround, lroundf, lroundl
llround, llroundf, llroundl
trunc, truncf, truncl
modf, modff, modfl
nearbyint, nearbyintf, nearbyintl
rint, rintf, rintl
fegetround
fesetround
lrint, lrintf, lrintl
llrint, llrintf, llrintl
|