4.3BSD/usr/man/man3/floor.3m

.\" Copyright (c) 1985 Regents of the University of California.
.\" All rights reserved.  The Berkeley software License Agreement
.\" specifies the terms and conditions for redistribution.
.\"
.\"	@(#)floor.3m	6.4 (Berkeley) 5/12/86
.\"
.TH FLOOR 3M  "May 12, 1986"
.UC 4
.SH NAME
fabs, floor, ceil, rint \- absolute value, floor, ceiling, and
round-to-nearest functions
.SH SYNOPSIS
.nf
.B #include <math.h>
.PP
.B double floor(x)
.B double x;
.PP
.B double ceil(x)
.B double x;
.PP
.B double fabs(x)
.B double x;
.PP
.B double rint(x)
.B double x;
.fi
.SH DESCRIPTION
Fabs returns the absolute value |\|x\||.
.PP
Floor returns the largest integer no greater than x.
.PP
Ceil returns the smallest integer no less than x.
.PP
Rint returns the integer (represented as a double precision number)
nearest x in the direction of the prevailing rounding mode.
.SH NOTES
On a VAX, rint(x) is equivalent to adding half to the magnitude
and then rounding towards zero.
.PP
In the default rounding mode, to nearest,
on a machine that conforms to IEEE 754,
rint(x) is the integer nearest x with the additional stipulation
that if |rint(x)\-x|=1/2 then rint(x) is even.
Other rounding modes can make rint act like floor, or like ceil,
or round towards zero.
.PP
Another way to obtain an integer near x is to declare (in C)
.RS
double x;\0\0\0\0 int k;\0\0\0\0k\0=\0x;
.RE
Most C compilers round x towards 0 to get the integer k, but
some do otherwise.
If in doubt, use floor, ceil, or rint first, whichever you intend.
Also note that, if x is larger than k can accommodate, the value of
k and the presence or absence of an integer overflow are hard to
predict.
.SH SEE ALSO
abs(3),
ieee(3M),
math(3M)