# std::isnormal

< cpp‎ | numeric‎ | math

定义于头文件 `<cmath>` |  |
bool isnormal( float arg ); | (1) | (C++11 起)
bool isnormal( double arg ); | (2) | (C++11 起)
bool isnormal( long double arg ); | (3) | (C++11 起)
bool isnormal( IntegralType arg ); | (4) | (C++11 起)

1-3) 确定给定的浮点数 `arg` 是否为正规值，即不是零、非正规、无穷大或 NaN 。
4) 接受任何整数类型 `arg` 参数的重载集或函数模板。等价于 (2) （将参数转型为 double ）。

### 参数

arg | - | 浮点值

### 返回值

若 `arg` 正规则为 true ，否则为 false 。

### 示例

    #include <iostream>
    #include <cmath>
    #include <cfloat>

    int main()
    {
        std::cout << std::boolalpha
                  << "isnormal(NaN) = " << std::isnormal(NAN) << '\n'
                  << "isnormal(Inf) = " << std::isnormal(INFINITY) << '\n'
                  << "isnormal(0.0) = " << std::isnormal(0.0) << '\n'
                  << "isnormal(DBL_MIN/2.0) = " << std::isnormal(DBL_MIN/2.0) << '\n'
                  << "isnormal(1.0) = " << std::isnormal(1.0) << '\n';
    }

输出：

    isnormal(NaN) = false
    isnormal(Inf) = false
    isnormal(0.0) = false
    isnormal(DBL_MIN/2.0) = false
    isnormal(1.0) = true

### 参阅

fpclassify (C++11) | 归类给定的浮点值 (函数)
isfinite (C++11) | 检查给定数是否拥有有限值 (函数)
isinf (C++11) | 检查给定数是否为无限 (函数)
isnan (C++11) | 检查给定的数是否 NaN (函数)