`int signbit(double __x)`

The signbit() function returns a nonzero value if the value of *__x* has its sign bit set. This is not the same as `*__x* < 0.0', because IEEE 754 floating point allows zero to be signed. The comparison `-0.0 < 0.0' is false, but `signbit (-0.0)' will return a nonzero value.