**NAME**

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**(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600
|| _ISOC99_SOURCE; or __cc__ __-std=c99__

**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.

**CONFORMING** **TO**

C99, POSIX.1-2001. 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 3.24 of the Linux __man-pages__ project. A
description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
2008-10-06