Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::fpclassify

      From cppreference.com
      <cpp‎ |numeric‎ |math
       
       
       
      Common mathematical functions
      Nearest integer floating point operations
      (C++11)(C++11)(C++11)
      (C++11)
      (C++11)
      (C++11)(C++11)(C++11)
      Floating point manipulation functions
      (C++11)(C++11)
      (C++11)
      (C++11)
      Classification and comparison
      fpclassify
      (C++11)
      (C++11)
      (C++11)
      (C++11)
      (C++11)
      (C++11)
      Types
      (C++11)
      (C++11)
      (C++11)
      Macro constants
       
      Defined in header<cmath>
      (1)
      int fpclassify(float num);

      int fpclassify(double num);

      int fpclassify(longdouble num);
      (since C++11)
      (until C++23)
      constexprint fpclassify(/* floating-point-type */ num);
      (since C++23)
      Defined in header<cmath>
      template<class Integer>
      int fpclassify( Integer num);
      (A)(since C++11)
      (constexpr since C++23)
      1) Categorizes floating point valuenum into the following categories: zero, subnormal, normal, infinite, NAN, or implementation-defined category. The library provides overloads ofstd::fpclassify for all cv-unqualified floating-point types as the type of the parameternum.(since C++23)
      A) Additional overloads are provided for all integer types, which are treated asdouble.

      Contents

      [edit]Parameters

      num - floating-point or integer value

      [edit]Return value

      one ofFP_INFINITE,FP_NAN,FP_NORMAL,FP_SUBNORMAL,FP_ZERO or implementation-defined type, specifying the category ofnum.

      [edit]Notes

      The additional overloads are not required to be provided exactly as(A). They only need to be sufficient to ensure that for their argumentnum of integer type,std::fpclassify(num) has the same effect asstd::fpclassify(static_cast<double>(num)).

      [edit]Example

      Run this code
      #include <cfloat>#include <cmath>#include <iostream> auto show_classification(double x){switch(std::fpclassify(x)){caseFP_INFINITE:return"Inf";caseFP_NAN:return"NaN";caseFP_NORMAL:return"normal";caseFP_SUBNORMAL:return"subnormal";caseFP_ZERO:return"zero";default:return"unknown";}} int main(){std::cout<<"1.0/0.0 is "<< show_classification(1/0.0)<<'\n'<<"0.0/0.0 is "<< show_classification(0.0/0.0)<<'\n'<<"DBL_MIN/2 is "<< show_classification(DBL_MIN/2)<<'\n'<<"-0.0 is "<< show_classification(-0.0)<<'\n'<<"1.0 is "<< show_classification(1.0)<<'\n';}

      Output:

      1.0/0.0 is Inf0.0/0.0 is NaNDBL_MIN/2 is subnormal-0.0 is zero1.0 is normal

      [edit]See also

      (C++11)
      checks if the given number has finite value
      (function)[edit]
      (C++11)
      checks if the given number is infinite
      (function)[edit]
      (C++11)
      checks if the given number is NaN
      (function)[edit]
      (C++11)
      checks if the given number is normal
      (function)[edit]
      provides an interface to query properties of all fundamental numeric types
      (class template)[edit]
      C documentation forfpclassify
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/numeric/math/fpclassify&oldid=177741"

      [8]ページ先頭

      ©2009-2025 Movatter.jp