isnan, _isnan, _isnanf

Проверяет, является ли значение с плавающей запятой naN ("Не число").

Синтаксис

int isnan(
   /* floating-point */ x
); /* C-only macro */

int _isnan(
   double x
);

int _isnanf(
   float x
); /* x64 only */

template <class T>
bool isnan(
   T x
) throw(); /* C++ only */

Параметры

x
Проверяемое значение с плавающей запятой.

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

В C макрос и _isnan_isnanf функции возвращают ненулевое значение, isnan если аргумент x является naN; в противном случае они возвращают значение 0.

В C++функция шаблона возвращается, isnan если аргумент x является naN; в противном случае возвращаетсяfalse.true

Замечания

Так как значение NaN не сравнивается как равное самому себе или другому значению NaN, чтобы определить его, необходимо использовать одну из этих функций или макросов. NaN создается, когда результат операции с плавающей запятой не может быть представлен в формате IEEE-754 с плавающей запятой для указанного типа. Сведения о том, как представляется naN для выходных данных, см. в разделе printf.

При компиляции как C++ isnan макрос не определен, а isnan функция шаблона определяется. Он ведет себя так же, как макрос, но возвращает значение типа bool вместо целого числа.

_isnanf Функции _isnan относятся к корпорации Майкрософт. Функция _isnanf доступна только при компиляции для x64.

Требования

Маршрут Обязательный заголовок (C) Обязательный заголовок (C++)
isnan, _isnanf <math.h> <math.h> или <cmath>
_isnan <float.h> <float.h> или <cfloat>

Дополнительные сведения о совместимости см. в разделе Совместимость.

См. также

Поддержка математических и плавающих точек
fpclassify
_fpclass, _fpclassf
isfinite, _finite, _finitef
isinf
isnormal