floor, floorf, floorl - largest integral value not greater than argument
#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
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.
These functions return the floor of
x.
If
x is integral, +0, -0, NaN, or an infinity,
x itself is
returned.
No errors occur. POSIX.1-2001 documents a range error for overflows, but see
NOTES.
For an explanation of the terms used in this section, see
attributes(7).
Interface |
Attribute |
Value |
floor (), floorf (), floorl () |
Thread safety |
MT-Safe |
C99, POSIX.1-2001, POSIX.1-2008.
The variant returning
double also conforms to SVr4, 4.3BSD, C89.
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).)
ceil(3),
lrint(3),
nearbyint(3),
rint(3),
round(3),
trunc(3)