Round down to the next integer
This functionality does not run in MATLAB.
floor rounds a number to the next smaller
For complex arguments,
floor rounds the real
and the imaginary parts separately.
For real numbers and exact expressions representing real numbers,
For arguments that contain symbolic identifiers,
unevaluated function calls.
For floating-point intervals,
floating-point intervals containing all the results of applying
the real or complex numbers inside the interval.
Note: If the argument is a floating-point number of absolute value larger than 10DIGITS, the resulting integer is affected by internal non-significant digits. See Example 2.
Internally, exact numerical expressions that are neither integers
nor rational numbers are approximated by floating-point numbers before
rounding. Thus, the resulting integer depends on the current
The functions are sensitive to the environment variable
determines the numerical working precision.
Round the following real and complex numbers:
floor(3.5), floor(-7/2), floor(4.3 + 7*I)
Round the following symbolic expression representing a number:
floor(PI*I + 7*sin(exp(2)))
Rounding of expressions with symbolic identifiers produces unevaluated function calls:
floor(x - 1)
Rounding floating-point numbers of large absolute value is affected by internal non-significant digits:
x := 10^30/3.0
Note that only the first 10 decimal digits are "significant". Further digits are subject to round-off effects caused by the internal binary representation. These "insignificant" digits are part of the integer produced by rounding:
Exact numerical expressions are internally converted to floating
point numbers before rounding. Consequently, the current setting of
affect the result:
x := 10^30 - exp(30)^ln(10)
Note that the exact value of this number is 0. Floating-point evaluation is subject to severe cancellations:
DIGITS := 10: float(x), floor(x)
The floating-point result is more accurate when calculated with a higher precision. The rounded values change accordingly:
DIGITS := 20: float(x), floor(x)
DIGITS := 30: float(x), floor(x)
delete x, DIGITS:
On floating-point intervals,
This interval contains the results of
Because there are finite numbers represented as
floor returns very small or large
representable numbers in certain cases: