Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 des fonctions mathématiques et à virgule flottante
fpclassify
_fpclass, _fpclassf
isfinite, , _finite_finitef
isinf
isnormal