名稱空間
變體
操作

FP_NORMAL, FP_SUBNORMAL, FP_ZERO, FP_INFINITE, FP_NAN

來自 cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
常用數學函式
函式
基本操作
(C++11)  
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
指數函式
(C++11)
(C++11)

(C++11)
(C++11)
冪函式
(C++11)
(C++11)
三角
雙曲函式
(C++11)
(C++11)
(C++11)

誤差函式和伽馬函式
(C++11)
(C++11)
(C++11)
(C++11)
取整浮點運算
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
浮點操縱函式
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)
分類和比較
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
型別
(C++11)
(C++11)
(C++11)
宏常量
分類
FP_NORMALFP_SUBNORMALFP_ZEROFP_INFINITEFP_NAN
(C++11)(C++11)(C++11)(C++11)(C++11)


 
定義於標頭檔案 <cmath>
#define FP_NORMAL    /* implementation defined */
(C++11 起)
#define FP_SUBNORMAL /* implementation defined */
(C++11 起)
#define FP_ZERO      /* implementation defined */
(C++11 起)
#define FP_INFINITE  /* implementation defined */
(C++11 起)
#define FP_NAN       /* implementation defined */
(C++11 起)

FP_NORMALFP_SUBNORMALFP_ZEROFP_INFINITEFP_NAN 宏各自表示一種不同的浮點數類別。它們都擴充套件為一個整數常量表達式。

常量 解釋
FP_NORMAL 表示該值為 正常,即非無窮大、非次正常數、非非數值或非零
FP_SUBNORMAL 表示該值為 次正常數
FP_ZERO 表示該值為正零或負零
FP_INFINITE 表示該值無法用底層型別表示(正無窮大或負無窮大)
FP_NAN 表示該值為非數值(NaN)

[編輯] 示例

#include <cfloat>
#include <cmath>
#include <iostream>
 
auto show_classification(double x)
{
    switch (std::fpclassify(x))
    {
        case FP_INFINITE:
            return "Inf";
        case FP_NAN:
            return "NaN";
        case FP_NORMAL:
            return "normal";
        case FP_SUBNORMAL:
            return "subnormal";
        case FP_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';
}

輸出

1.0/0.0 is Inf
0.0/0.0 is NaN
DBL_MIN/2 is subnormal
-0.0 is zero
1.0 is normal

[編輯] 參閱

對給定浮點值進行分類
(function) [編輯]
FP_categoriesC 文件