Главная    Разработка ПО    функции языка Си

Описание функций языка Си

" F "

fabs,fabsf,fabsl 

fclose 

fcloseall 

fdim,fdimf,fdiml 

fdopen 

fegetround 

feof 

ferror 

fesetround 

fgetc 

fgets 

fileno 

finite,finitef,finitel 

fflush 

floor,floorf,floorl 

fma,fmaf,fmal 

fmax,fmaxf,fmaxl 

fmin,fminf,fminl 

fmod,fmodf,fmodl 

fopen 

fpclassify 

fputc 

fputs 

freopen 

frexp,frexpf,frexpl 

fseek 

fseeko 

ftell 

ftello 

All | _ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

fesetround – установка правил округления

Синтаксис:

#include < fenv.h >

int fesetround (void);

Аргументы:

Код режима округления, который необходимо установить.

Возвращаемое значение:

0 – если новый режим установлен, иначе отличное от 0 значение.

Описание:

Функция устанавливает режим округления, используемый в функциях rint() и nearbyint().

Всего существует четыре разжима округления:

FE_DOWNWARD (код 1024) – округлять до наибольшего целого меньшего или равного округляемому значению.

FE_TONEAREST (код 0) – округлять до ближайшего целого числа, если округляемый аргумент отстоит от наибольшего и наименьшего целого на одну и ту же величину, то округления произведется до ближайшего большего целого числа. Этот режим установлен по умолчанию.

FE_TOWARDZERO (код 3072) – округлять до целого числа в сторону нуля. То есть, если число отрицательное округление будет происходить до наименьшего целого большего или равного округляемому значению. Если число положительное, то округление будет происходить до наибольшего целого меньшего или равного округляемому значению.

FE_UPWARD (код 2048) – округлять до наименьшего целого большего или равного округляемому значению.

Пример:

В примере числа 3,768 и -3.768 округляются функцией nearbyint() при различных режимах округления, устанавливаемых с помощью функции fesetround().


#include < stdio.h >  //Для printf
#include < fenv.h >   //Для fegetround
#include < math.h >   //Для nearbyint

int main (void)
{    
   //Установка режима округления FE_ DOWNWARD и проверка
   //выполнения установки
   if (fesetround (FE_ DOWNWARD)==0)
   {
       //Вывод названия установленного режима
       printf (“Режим округления: FE_ DOWNWARD\n”);
       //Вывод значений для округления
       printf (“     Аргументы : 3.768  -3.768\n”);
       //Округление и вывод результата
       printf (“     Округление: %.1f    %.1f\n”,nearbyint (3.768), nearbyint (-3.768) );
   }

   //Установка режима округления FE_TONEAREST и проверка
   //выполнения установки
   if (fesetround (FE_TONEAREST)==0)
   { 
       //Вывод названия установленного режима
       printf (“Режим округления: FE_TONEAREST \n”);
       //Вывод значений для округления
       printf (“     Аргументы : 3.768  -3.768\n”);
       //Округление и вывод результата
       printf (“     Округление: %.1f    %.1f\n”,nearbyint (3.768), nearbyint (-3.768) );
   }

   //Установка режима округления FE_TOWARDZERO и проверка
   //выполнения установки
   if (fesetround (FE_TOWARDZERO)==0)
   {
       //Вывод названия установленного режима
       printf (“Режим округления: FE_TOWARDZERO \n”);
       //Вывод значений для округления
       printf (“     Аргументы : 3.768  -3.768\n”);
       //Округление и вывод результата
       printf (“     Округление: %.1f    %.1f\n”,nearbyint (3.768), nearbyint (-3.768) );
   }

   //Установка режима округления FE_TONEAREST и проверка
   //выполнения установки
   if (fesetround (FE_UPWARD)==0)
   {
       //Вывод названия установленного режима
       printf (“Режим округления: FE_UPWARD \n”);
       //Вывод значений для округления
       printf (“     Аргументы : 3.768  -3.768\n”);
       //Округление и вывод результата
       printf (“     Округление: %.1f    %.1f\n”,nearbyint (3.768), nearbyint (-3.768) );
    }

    return 0;
}

Результат:

 Режим округления: FE_ DOWNWARD
    Аргументы : 3.768  -3.768
    Округление: 3.0      -4.0
 Режим округления: FE_TONEAREST
    Аргументы : 3.768  -3.768
    Округление: 4.0      -4.0
 Режим округления: FE_TOWARDZERO
    Аргументы : 3.768  -3.768
    Округление: 3.0      -3.0
 Режим округления: FE_UPWARD
    Аргументы : 3.768  -3.768
    Округление: 4.0      -3.0



Смотри так же:

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


Яндекс.Метрика

Рейтинг@Mail.ru