Skip to content

Latest commit

 

History

History
73 lines (53 loc) · 2.64 KB

isnan-isnan-isnanf.md

File metadata and controls

73 lines (53 loc) · 2.64 KB
description title ms.date api_name api_location api_type topic_type f1_keywords helpviewer_keywords ms.assetid
Learn more about: isnan, _isnan, _isnanf
isnan, _isnan, _isnanf
01/31/2019
_isnan
_isnanf
isnan
msvcrt.dll
msvcr80.dll
msvcr90.dll
msvcr100.dll
msvcr100_clr0400.dll
msvcr110.dll
msvcr110_clr0400.dll
msvcr120.dll
msvcr120_clr0400.dll
ucrtbase.dll
api-ms-win-crt-math-l1-1-0.dll
DLLExport
apiref
_isnan
isnan
math/isnan
math/_isnan
math/_isnanf
_isnanf
NaN (not a number)
_isnan function
IEEE floating-point representation
Not a Number (NaNs)
isnan function
391fbc5b-89a4-4fba-997e-68f1131caf82

isnan, _isnan, _isnanf

Tests if a floating-point value is a NaN ("Not a Number").

Syntax

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

Parameters

x
The floating-point value to test.

Return value

In C, the isnan macro and the _isnan and _isnanf functions return a non-zero value if the argument x is a NaN; otherwise they return 0.

In C++, the isnan template function returns true if the argument x is a NaN; otherwise it returns false.

Remarks

Because a NaN value doesn't compare as equal to itself or to any other NaN value, to detect one, you must use one of these functions or macros. A NaN is generated when the result of a floating-point operation can't be represented in IEEE-754 floating-point format for the specified type. For information about how a NaN is represented for output, see printf.

When compiled as C++, the isnan macro isn't defined, and an isnan template function is defined instead. It behaves the same way as the macro, but returns a value of type bool instead of an integer.

The _isnan and _isnanf functions are Microsoft-specific. The _isnanf function is only available when compiled for x64.

Requirements

Routine Required header (C) Required header (C++)
isnan, _isnanf <math.h> <math.h> or <cmath>
_isnan <float.h> <float.h> or <cfloat>

For more compatibility information, see Compatibility.

See also

Math and floating-point support
fpclassify
_fpclass, _fpclassf
isfinite, _finite, _finitef
isinf
isnormal