---
name: "signbit"
section: "3"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/signbit"
---

# signbit(3)

test sign of a real floating-point number

## NAME

signbit - test sign of a real floating-point number

## LIBRARY

Math library (*libm*, *-lm*)

## SYNOPSIS

```
#include <math.h>
```

**int signbit(***x***);**

Feature Test Macro Requirements for glibc (see [**feature\_test\_macros**(7)](/feature_test_macros/7.md)):

**signbit**():

```
    _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
```

## DESCRIPTION

**signbit**() is a generic macro which can work on all real floating-point types. It 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.

NaNs and infinities have a sign bit.

## RETURN VALUE

The **signbit**() macro returns nonzero if the sign of *x* is negative; otherwise, it returns zero.

## ERRORS

No errors occur.

## ATTRIBUTES

For an explanation of the terms used in this section, see [**attributes**(7)](/attributes/7.md).

| | | |
| --- | --- | --- |
| **Interface** | **Attribute** | **Value** |
| **signbit**() | Thread safety | MT-Safe |

## STANDARDS

C11, POSIX.1-2008.

## HISTORY

POSIX.1-2001, C99.

This function is defined in IEC 559 (and the appendix with recommended functions in IEEE 754/IEEE 854).

## SEE ALSO

[**copysign**(3)](/copysign/3.md)
