isnan
, , _isnan
_isnanf
Sprawdza, czy wartość zmiennoprzecinkowa jest wartością NaN ("Not a Number").
Składnia
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 */
Parametry
x
Wartość zmiennoprzecinkowa do przetestowania.
Wartość zwracana
W języku isnan
C makro i _isnan
funkcje zwracają _isnanf
wartość niezerową, jeśli argument x
jest wartością NaN; w przeciwnym razie zwracają wartość 0.
W języku C++funkcja szablonu isnan
zwraca true
wartość , jeśli argument x
jest wartością NaN; w przeciwnym razie zwraca wartość false
.
Uwagi
Ponieważ wartość NaN nie jest porównywana jako równa się samej lub innej wartości NaN, aby je wykryć, należy użyć jednej z tych funkcji lub makr. Wartość NaN jest generowana, gdy wynik operacji zmiennoprzecinkowych nie może być reprezentowany w formacie zmiennoprzecinkowym IEEE-754 dla określonego typu. Aby uzyskać informacje na temat przedstawiania nazwy nan dla danych wyjściowych, zobacz printf
.
Po skompilowaniu jako C++ isnan
makro nie jest zdefiniowane, a isnan
zamiast tego zdefiniowana jest funkcja szablonu. Zachowuje się tak samo jak makro, ale zwraca wartość typu bool
zamiast liczby całkowitej.
Funkcje _isnan
i _isnanf
są specyficzne dla firmy Microsoft. Funkcja _isnanf
jest dostępna tylko w przypadku kompilacji dla x64.
Wymagania
Procedura | Wymagany nagłówek (C) | Wymagany nagłówek (C++) |
---|---|---|
isnan , _isnanf |
<math.h> | <math.h> lub <cmath> |
_isnan |
<float.h> | <float.h> lub <cfloat> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Zobacz też
Obsługa obliczeń matematycznych i zmiennoprzecinkowych
fpclassify
_fpclass
, _fpclassf
isfinite
, , _finite
_finitef
isinf
isnormal