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

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

" I "

ilogb,ilogbf,ilogbl 

isfinite 

isgreater 

isgreaterequal 

isinf,isinf,isinl 

isinf 

isless 

islessequal 

islessgreater 

isnan,isnanf,isnanl 

isnormal 

isunordered 

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

isnan, isnanf, isnanl – проверяют, является ли аргумент не числом (nan).

Синтаксис:

#include < math.h >

int isnan (double x);
int isnanf (float x);
int isnanl (long double x);

Аргументы:

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

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

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

Описание:

Функции isnan, isnanf, isnanl проверяют, является ли аргумент не числом (NAN).

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

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

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

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

Пример:

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


#include < stdio.h >  //Для puts
#include < math.h >   //Для isnan, isnanf, isnanl

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 (isnanf (arg1) == 0)
      puts (“Первый аргумент – конечное число или бесконечность.”);
   else
      puts (“Первый аргумент – не число.”);

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

   // Проверяем тип третьего аргумента и выводим результат
   if ( isnanl (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