isnan, _isnan, _isnanf

Teste si une valeur à virgule flottante est un naN (« Pas un nombre »).

Syntaxe

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 */

Paramètres

x
Valeur à virgule flottante à tester.

Valeur retournée

En C, la isnan macro et les _isnan_isnanf fonctions retournent une valeur non nulle si l’argument x est un naN ; sinon, ils retournent 0.

En C++, la isnan fonction de modèle retourne true si l’argument x est un NaN ; sinon, il retourne false.

Notes

Étant donné qu’une valeur NaN ne se compare pas comme égale à elle-même ou à une autre valeur NaN, pour détecter une valeur, vous devez utiliser l’une de ces fonctions ou macros. Un naN est généré lorsque le résultat d’une opération à virgule flottante ne peut pas être représenté au format à virgule flottante IEEE-754 pour le type spécifié. Pour plus d’informations sur la façon dont un naN est représenté pour la sortie, consultez printf.

Lorsqu’elle est compilée en C++, la isnan macro n’est pas définie et une isnan fonction de modèle est définie à la place. Il se comporte de la même façon que la macro, mais retourne une valeur de type bool au lieu d’un entier.

Les _isnan fonctions et _isnanf les fonctions sont spécifiques à Microsoft. La fonction _isnanf n’est disponible que quand elle est compilée pour x64.

Spécifications

Routine En-tête requis (C) En-tête requis (C++)
isnan, _isnanf <math.h> <math.h> ou <cmath>
_isnan <float.h> <float.h> ou <cfloat>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Voir aussi

Prise en charge mathématique et à virgule flottante
fpclassify
_fpclass, _fpclassf
isfinite, _finite, _finitef
isinf
isnormal