FLOOR AND CEILING FUNCTIONS

(Redirected from Fractional part)
The floor function

The ceiling function

In mathematics, the 'floor' and the 'ceiling' functions are two functions which convert arbitrary real numbers to close integers.[1]
The 'floor function' of a real number ''x'', denoted lfloor x
floor or floor(''x''), is a function that returns the largest integer less than or equal to ''x''. Formally, for all real numbers ''x'',
: lfloor x
floor=max, {ninmathbb{Z}mid nle x}.
For example, floor(2.9) = 2, floor(−2) = −2 and floor(−2.3) = −3. For nonnegative ''x'', a more traditional name for floor(''x'') is the 'integral part' or 'integral value' of ''x''. The function x -lfloor x
floor, also written as ''x'' mod 1, or {''x''}, is called the 'fractional part' of ''x''. Every fraction ''x'' 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.
The closely-related 'ceiling function', denoted lceil x
ceil or ceiling(''x''), is the function that returns the smallest integer not less than ''x'', or, formally,
: lceil x
ceil=min{ninmathbb{Z}mid xle n}.
For example, ceiling(2.3) = 3, ceiling(2) = 2 and ceiling(−2.3) = −2.
The names "floor" and "ceiling" and the corresponding notations were introduced by Kenneth E. Iverson in 1962.[2]

Contents
Some properties of the floor function
Some properties of the ceiling function
The operator (int) in C
Truncation
Typesetting
Notes

Some properties of the floor function



★ One has
:: lfloor x
floor le x < lfloor x
floor + 1
:with equality on the left if and only if ''x'' is an integer.

★ The floor function is idempotent: lfloorlfloor x
floor
floor=lfloor x
floor.

★ For any integer ''k'' and any real number ''x'',
: lfloor {k+x}
floor = k + lfloor x
floor.

★ 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. Being a piecewise constant function, its derivative is zero where it exists, that is, at all points which are not integers.

★ If ''x'' is a real number and ''n'' is an integer, one has ''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 that embeds the integers into the reals.

★ Using the floor function, one can produce several explicit (yet impractical) formulas for prime numbers.

★ For real, non-integer ''x'', the floor function has the Fourier series representation
:lfloor x
floor = x - rac{1}{2} + rac{1}{pi} sum_{k=1}^infty rac{sin(2 pi k x)}{k}.

★ If ''m'' and ''n'' are coprime positive integers, then
:sum_{i=1}^{n-1} lfloor im / n
floor = (m - 1) (n - 1) / 2

Beatty's theorem shows how every positive irrational number gives rise to a partition of the natural numbers into two sequences via the floor function.

★ Furthermore, for any integer ''k'', the number of digits is determined by:
:lfloor log_{10}(k)
floor + 1

Some properties of the ceiling function



★ It is easy to show that:
:lceil x
ceil = - lfloor - x
floor

★ Also:
:x leq lceil x
ceil < x + 1

★ For any integer ''k'', we have the following equality:
: lfloor k / 2
floor + lceil k / 2
ceil = k.

The operator (int) in C


The (int) function

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 (int). This operation is a mixture of the floor and ceiling function: for positive or 0 ''x'' it returns floor(''x''), and for negative ''x'' it returns ceiling(''x'').
This operation loses significant data, and can therefore magnify rounding errors with disastrous consequences. For instance, (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.2 by a finite binary string. So some rounding errors occur, and the result is computed as 2.999999999999999555910790149937 which the (int) operator will convert to 2.
Many other languages, such as Java (tested with Sun JDK version 1.5.0_05), Perl (as of version 5.8.0), and PHP (tested on version 5.2.1) behave similarly and exhibit rounding errors, as does the POSIX floor() function, every time floating point types are used to store real values.
Because of issues like these, most modern calculators use the decimal numeral system internally, but this only solves a small part of possible problems, and not the fact that (int)((4.0/9.0)
★ 9.0) will still return 3 instead of 4, even when using decimal floating point representation at any datatype precision (The effective result comes from the truncation of 0.44444...4444
★ 9.0 = 3.99999...9996, for which either a binary or decimal internal base has no influence on the precision of the result and the error, even when correct rounding to the nearest representable number is used throughout the calculation).
A more elegant solution is to use better numeric datatypes to allow representing rational values exactly, or to avoid aggravating rounding errors which will only appear when non polynomial functions are used in the calculation. For example, a pair can be used for storing a floating point numerator and a positive integer divisor (a solution used in the Calculator accessory in Windows): all intermediate calculation and storage use this datatype, and the decimal floating point value is computed only for the final display of the calculator, with correct rounding up to the displayed precision.

Truncation


While the floor function only outputs integers, the act of real truncation, or "cutting off the digits", may be performed at any specified position, not necessarily after the units digit.

Typesetting


The floor and ceiling function are usually typeset with left and right square brackets where the upper (for floor function) or lower (for ceiling function) horizontal bars are missing, and, e.g., in the LaTeX typesetting system these symbols can be specified with the lfloor,
floor, lceil and
ceil commands in math mode. Unicode contains codepoints for these symbols, at U+2308U+230B: ⌈''x''⌉, ⌊''x''⌋.

Notes


1. Ronald Graham, Donald Knuth and Oren Patashnik. "''Concrete Mathematics''". Addison-Wesley, 1999. Chapter 3, "Integer Functions".
2. Kenneth E. Iverson. "''A Programming Language''". Wiley, 1962.


This article provided by Wikipedia. To edit the contents of this article, click here for original source.

psst.. try this: add to faves
Floor and ceiling functions Travel Deals