Udostępnij za pośrednictwem


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