FP_NORMAL, FP_SUBNORMAL, FP_ZERO, FP_INFINITE, FP_NAN
From cppreference.com
Defined in header
<math.h>
|
||
#define FP_NORMAL /*implementation defined*/
|
(since C99) | |
#define FP_SUBNORMAL /*implementation defined*/
|
(since C99) | |
#define FP_ZERO /*implementation defined*/
|
(since C99) | |
#define FP_INFINITE /*implementation defined*/
|
(since C99) | |
#define FP_NAN /*implementation defined*/
|
(since C99) | |
The FP_NORMAL
, FP_SUBNORMAL
, FP_ZERO
, FP_INFINITE
, FP_NAN
macros each represent a distinct category of floating-point numbers. They all expand to an integer constant expression.
Constant | Explanation |
FP_NORMAL
|
indicates that the value is normal, i.e. not an infinity, subnormal, not-a-number or zero |
FP_SUBNORMAL
|
indicates that the value is subnormal |
FP_ZERO
|
indicates that the value is positive or negative zero |
FP_INFINITE
|
indicates that the value is not representable by the underlying type (positive or negative infinity) |
FP_NAN
|
indicates that the value is not-a-number (NaN) |
[edit] Example
Run this code
#include <stdio.h> #include <math.h> #include <float.h> int main(void) { printf("FP_NAN = %d\n", FP_NAN); /* 0 */ printf("FP_INFINITE = %d\n", FP_INFINITE); /* 1 */ printf("FP_ZERO = %d\n", FP_ZERO); /* 2 */ printf("FP_SUBNORMAL = %d\n", FP_SUBNORMAL); /* 3 */ printf("FP_NORMAL = %d\n", FP_NORMAL); /* 4 */ return 0; }
Possible output:
FP_NAN = 0 FP_INFINITE = 1 FP_ZERO = 2 FP_SUBNORMAL = 3 FP_NORMAL = 4
[edit] See also
(C99)
|
classifies the given floating-point value (function) |
C++ documentation for FP_categories
|