# floor man page

floor, floorf, floorl — largest integral value not greater than argument

## Synopsis

**#include <math.h>**
**double floor(double** *x***);**
**float floorf(float** *x***);**
**long double floorl(long double** *x***);**

`Link with `

*-lm*.

Feature Test Macro Requirements for glibc (see feature_test_macros(7)):**floorf**(), **floorl**():

_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L

|| /* Since glibc 2.19: */ _DEFAULT_SOURCE

|| /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

## Description

These functions return the largest integral value that is not greater than *x*.

For example, *floor(0.5)* is 0.0, and *floor(-0.5)* is -1.0.

## Return Value

These functions return the floor of *x*.

If *x* is integral, +0, -0, NaN, or an infinity, *x* itself is returned.

## Errors

No errors occur. POSIX.1-2001 documents a range error for overflows, but see Notes.

## Attributes

For an explanation of the terms used in this section, see attributes(7).

Interface | Attribute | Value |
---|---|---|

floor(), floorf(), floorl() | Thread safety | MT-Safe |

## Conforming to

C99, POSIX.1-2001, POSIX.1-2008.

The variant returning *double* also conforms to SVr4, 4.3BSD, C89.

## Notes

SUSv2 and POSIX.1-2001 contain text about overflow (which might set *errno* to **ERANGE**, or raise an **FE_OVERFLOW** exception). In practice, the result cannot overflow on any current machine, so this error-handling stuff is just nonsense. (More precisely, overflow can happen only when the maximum value of the exponent is smaller than the number of mantissa bits. For the IEEE-754 standard 32-bit and 64-bit floating-point numbers the maximum value of the exponent is 128 (respectively, 1024), and the number of mantissa bits is 24 (respectively, 53).)

## See Also

ceil(3), lrint(3), nearbyint(3), rint(3), round(3), trunc(3)

## Colophon

This page is part of release 4.09 of the Linux *man-pages* project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.

## Referenced By

abs(3), ceil(3), fabs(3), lrint(3), lround(3), rint(3), round(3), trunc(3).

floorf(3) and floorl(3) are aliases of floor(3).