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

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

" 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

finite, finitef, finitel – проверяют, является ли аргумент конечным числом.

Синтаксис:

#include < math.h >

int finite (double x);
int finitef (float x);
int finitel (long double x);

Аргументы:

x – проверяемое число с плавающей точкой.

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

0 - если аргумент плюс или минус бесконечность или не число (NAN).

Отличное от нуля значение, если проверяемый аргумент – конечное число.

Описание:

Функции finite, finitef, finitel проверяют, является ли аргумент конечным числом, то есть проверяют, что аргумент не плюс/минус бесконечность и не является нечисловым значением (не NAN).

Функции finite, finitef, finitel отличаются друг от друга типом аргумента. Так аргумент функции finite является числом с плавающей точкой двойной точности (тип double, точность не менее десяти значащих десятичных цифр, разрядность - 64).

Аргумент функции finitef является числом с плавающей точкой (тип float, точность не менее шести значащих десятичных цифр, разрядность - 32).

Аргумент функции finitel является числом с плавающей точкой повышенной точности (тип long double, точность не менее десяти значащих десятичных цифр, разрядность - 80).

Функции finite, finitef, finitel в ревизии C99 стандарта Си были продублированы макросом isfinite, работающим с аргументом, заданным числом с плавающей точкой любого типа (float, double, long double).

Пример:

В примере проверяется три аргумента, один из которых нормальное число, другой не число, а третий плюс бесконечность, с помощью функций finite, finitef, finitel и результат выводится на консоль.


#include < stdio.h >  //Для printf, puts
#include < math.h >   //Для finite, finitef, finitel

int main (void)
{    
   // Аргумент 1 – не число.
   float arg1 = NAN;
   // Аргумент 2 – бесконечность
   double arg2 = INFINITY;
   // Аргумент 3 – конечное число
   long double arg3 = 104.563;

   // Выводим на консоль значения аргументов
   printf (“Аргументы: %f %f %3Lf\n”,arg1, arg2, arg3);

   // Проверяем тип первого аргумента и выводим результат
   if ( finitef (arg1) == 0)
      puts (“Первый аргумент – бесконечность или не число.”);
   else
      puts (“Первый аргумент – конечное число.”);

   // Проверяем тип второго аргумента и выводим результат
   if ( finite (arg2) == 0)
      puts (“Второй аргумент – бесконечность или не число.”);
   else
      puts (“Второй аргумент – конечное число.”);

   // Проверяем тип третьего аргумента и выводим результат
   if ( finitel (arg3) == 0)
      puts (“Третий аргумент – бесконечность или не число.”);
   else
      puts (“Третий аргумент – конечное число.”);

   return 0;
}

Результат:

Аргументы: nan, inf, 104.563
Первый аргумент – бесконечность или не число.
Второй аргумент – бесконечность или не число.
Третий аргумент – конечное число.



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

Функции:
finite, finitef, finitel
isinf, isinff, isinfl
isnan,isnanf,isnanl

Макросы:
isfinite
isinf
isnan
isnormal
isunordered
fpclassify


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

Рейтинг@Mail.ru