Condividi tramite


isnan, _isnan, _isnanf

Verifica se un valore a virgola mobile è un Valore NaN ("Non un numero").

Sintassi

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

Parametri

x
Valore a virgola mobile da verificare.

Valore restituito

In C, la isnan macro e le _isnan funzioni e _isnanf restituiscono un valore diverso da zero se l'argomento x è un NaN; in caso contrario, restituiscono 0.

In C++, la isnan funzione modello restituisce true se l'argomento x è un NaN; in caso contrario, restituisce false.

Osservazioni:

Poiché un valore NaN non viene confrontato come uguale a se stesso o a qualsiasi altro valore NaN, per rilevarne uno, è necessario usare una di queste funzioni o macro. Un NaN viene generato quando il risultato di un'operazione a virgola mobile non può essere rappresentato in formato a virgola mobile IEEE-754 per il tipo specificato. Per informazioni sulla rappresentazione di un NaN per l'output, vedere printf.

Quando viene compilato come C++, la isnan macro non è definita e isnan viene definita una funzione modello. Si comporta allo stesso modo della macro, ma restituisce un valore di tipo bool anziché un numero intero.

Le _isnan funzioni e _isnanf sono specifiche di Microsoft. La funzione _isnanf è disponibile solo per la compilazione per la piattaforma x64.

Requisiti

Ciclo Intestazione obbligatoria (C) Intestazione obbligatoria (C++)
isnan, _isnanf <math.h> <math.h> o <cmath>
_isnan <float.h> <float.h> o <cfloat>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Vedi anche

Supporto matematico e a virgola mobile
fpclassify
_fpclass, _fpclassf
isfinite, _finite, _finitef
isinf
isnormal