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