std::fpclassify
From cppreference.com
Defined in header
<cmath>
|
||
int fpclassify( float arg );
|
(since C++11) | |
int fpclassify( double arg );
|
(since C++11) | |
int fpclassify( long double arg );
|
(since C++11) | |
Categorizes floating point value arg
into the following categories: zero, subnormal, normal, infinite, NAN, or implementation-defined category.
Contents |
[edit] Parameters
arg | - | floating point value |
[edit] Return value
one of FP_INFINITE, FP_NAN, FP_NORMAL, FP_SUBNORMAL, FP_ZERO or implementation-defined type, specifying the category of arg
.
[edit] Example
Run this code
#include <iostream> #include <cmath> #include <cfloat> int main() { std::cout<<"FP_NAN = "<<FP_NAN <<'\n';// 0 std::cout<<"FP_INFINITE = "<<FP_INFINITE <<'\n';// 1 std::cout<<"FP_ZERO = "<<FP_ZERO <<'\n';// 2 std::cout<<"FP_SUBNORMAL = "<<FP_SUBNORMAL<<'\n';// 3 std::cout<<"FP_NORMAL = "<<FP_NORMAL <<'\n';// 4 std::cout<<'\n'; std::cout<<"std::fpclassify(NAN) = "<<std::fpclassify(NAN) <<'\n'; std::cout<<"std::fpclassify(INFINITY) = "<<std::fpclassify(INFINITY) <<'\n'; std::cout<<"std::fpclassify(0.f) = "<<std::fpclassify(0.f) <<'\n'; std::cout<<"std::fpclassify(FLT_MIN/2.f) = "<<std::fpclassify(FLT_MIN/2.f)<<'\n'; std::cout<<"std::fpclassify(1.f) = "<<std::fpclassify(1.f) <<'\n'; return 0; }
Possible output:
FP_NAN = 0 FP_INFINITE = 1 FP_ZERO = 2 FP_SUBNORMAL = 3 FP_NORMAL = 4 fpclassify(NAN) = 0 fpclassify(INFINITY) = 1 fpclassify(0.f) = 2 fpclassify(FLT_MIN/2.f) = 3 fpclassify(1.f) = 4
[edit] See also
(C++11)
|
checks if the given number has finite value (function) |
(C++11)
|
checks if the given number is infinite (function) |
(C++11)
|
checks if the given number is NaN (function) |
(C++11)
|
checks if the given number is normal (function) |
provides an interface to query properties of all fundamental numeric types. (class template) |
|
C documentation for fpclassify
|