Floor function

In mathematics, the floor function is the function defined as follows: for a real number x, floor(x) is the largest integer less than or equal to x. For example, floor(2.9) = 2, floor(-2) = -2 and floor(-2.3) = -3. The floor function is also denoted by [x] or . A more traditional name for it is the integral part of x. The function x−[x], also written as x mod 1, is called the fractional part of x. Every fraction x ≥ 0 can be written as a mixed number, the sum of an integer and a proper fraction. The floor function and fractional part functions extend this decomposition to all real values.
| Table of contents |
|
2 The ceiling function 3 The operator (int) in C 4 The fractional part |
We always have
Some properties of the floor function
with equality on the left if and only if x is an integer. For any integer k and any real number x, we have
The ordinary rounding of the number x to the nearest integer can be expressed as floor(x + 0.5).
The floor function is not continuous, but it is upper semi-continuous.
If x is a real number and n is an integer, we have n ≤ x if and only if n ≤ floor(x). In fancy language: the floor function is part of a Galois connection; it is the upper adjoint of the function which embeds the integers into the reals.
Using the floor function, one can produce several explicit (yet impractical) formulas for prime numbers. See the article on prime numbers for a number of examples.
A closely related mathematical function is the ceiling function,
which is defined as follows: for any given real number x, ceiling(x)
is the smallest integer no less than x. For example, ceiling(2.3) = 3,
ceiling(2) = 2 and ceiling(-2.3) = -2. The ceiling function is also denoted
by . It is easy to show the following:
The ceiling function
and the following:
For any integer k, we also have the following equality:
If m and n are coprime positive integers, then
C and related programming languages have a feature called type casting which allows to turn a floating point value into an integer by prefixing it with
Like the floor and ceiling function, this operation is not continuous, which can magnify rounding errors with disastrous consequences. For instance,
If x is an irrational number, then the fractional parts nx mod 1, where n runs through the positive intergers, are extremely evenly distributed in the open interval (0,1). This can be made precise in various ways, one of which states
The operator (int) in C
(int). This operation is a mixture of the floor and ceiling function: for non-negative x it returns floor(x), and for negative x it returns ceiling(x). (int)(0.6/0.2) will return 2 in most implementations of C, even though 0.6/0.2 = 3. The reason is that computers work internally with the binary numeral system, and it is not possible to represent the numbers 0.6 and 0.3 by a finite binary string. So some rounding errors occur, and the result is computed as 2.999999999999999555910790149937 which the (int) operator will happily convert to 2. The POSIX floor() function has similar problems. Because of issues like these, most modern calculators use the decimal numeral system internally.The fractional part
for every continuous function f : [0,1] -> R (see limit (mathematics) and integration.)
According to a general principle of diophantine approximation discovered by Hermann Weyl, that property is equivalent to something much easier to check in this case: namely that sums
- Σ e2πiknx
- 0 < n < N
- sin(πkx) ≠ 0.