isnan()

Проверить, является ли число корректным (NAN)

Прототип:

#include <math.h>
#define isnan( x ) ...

Аргументы:

x
Число, которое требуется проверить.

Библиотека:

libm

Описание:

Макрос isnan() определяет, является ли x "не числом" (NAN).

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

1
Значение x равно NAN.
≠1
Значение x является числом.

Примеры:

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <inttypes.h>
#include <math.h>
#include <fpstatus.h>
int main( void )
{
double a, b, c, d;
a = 2;
b = -0.5;
c = NAN;
fp_exception_mask( _FP_EXC_DIVZERO, 1 );
d = 1.0 / 0.0;
printf( "%f is %s \n", a, (isnan( a )) ? "not a number" : "a number" );
printf( "%f is %s \n", b, (isnan( b )) ? "not a number" : "a number" );
printf( "%f is %s \n", c, (isnan( c )) ? "not a number" : "a number" );
printf( "%f is %s \n", d, (isnan( d )) ? "not a number" : "a number" );
return (EXIT_SUCCESS);
}

Код генерирует следующий вывод:

$ ./a.out 2.000000 is a number -0.500000 is a number NAN is not a number Inf is a number

Классификация:

POSIX 1003.1

Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

isfinite(), isinf()




Предыдущий раздел: Описание API математической библиотеки