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 des fonctions mathématiques et à virgule flottante
fpclassify
_fpclass
, _fpclassf
isfinite
, , _finite
_finitef
isinf
isnormal