# std::signbit

< cpp‎ | numeric‎ | math

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

1-3) 确定给定的浮点数 `arg` 是否为负。
4) 接受任何整数类型 `arg` 参数的重载集或函数模板。等价于 (2) （将参数转型为 double ）。

### 参数

arg | - | 浮点值

### 返回值

若 `arg` 为负则为 true ，否则为 false 。

### 注意

此函数检测零、无穷大和 NaN 的符号。 std::signbit 是检验 NaN 符号的唯二可移植方式，另一方式是 std::copysign 。

### 示例

    #include <iostream>
    #include <cmath>

    int main()
    {
        std::cout << std::boolalpha
                  << "signbit(+0.0) = " << std::signbit(+0.0) << '\n'
                  << "signbit(-0.0) = " << std::signbit(-0.0) << '\n';
    }

输出：

    signbit(+0.0) = false
    signbit(-0.0) = true

### 参阅

abs(float)fabs fabsf fabsl (C++11)(C++11) | 浮点值的绝对值（ \(\small{|x|}\)|x| ） (函数)
copysign copysignf copysignl (C++11)(C++11)(C++11) | 复制浮点值的符号 (函数)