Rounding to the nearest integer
This functionality does not run in MATLAB.
round(x
, <n
>)
round
rounds a number to the nearest integer.
For complex arguments, round
rounds the real
and the imaginary parts separately.
For arguments that contain symbolic identifiers, round
returns
unevaluated function calls.
For floatingpoint intervals, round
returns
floatingpoint intervals containing all the results of applying round
to
the real or complex numbers inside the interval.
round(x,n)
returns a floatingpoint number
with the rounded n
th decimal digit after the decimal
point and sets all further digits to zero. If n
is
a negative integer, then round
rounds the corresponding
digit to the left of the decimal point. See Example 2.
Note: If the argument is a floatingpoint number of absolute value larger than 10^{DIGITS}, the resulting integer is affected by internal nonsignificant digits. See Example 3. 
Note:
Internally, exact numerical expressions that are neither integers
nor rational numbers are approximated by floatingpoint numbers before
rounding. Thus, the resulting integer depends on the current 
The functions are sensitive to the environment variable DIGITS
which
determines the numerical working precision.
Round the following real and complex numbers:
round(3.5), round(7/2), round(I/2)
Round the following symbolic expression representing a number:
round(PI*I + 7*sin(exp(2)))
Rounding of expressions with symbolic identifiers produces unevaluated function calls:
round(x + 1)
round(x, n)
rounds the n
th
decimal digit of the floatingpoint representation of x
:
round(123.456, 1), round(123.456, 2), round(123.456, 3), round(123.456, 4), round(123.456, 5)
float(exp(5)*PI), round(exp(5)*PI, 3)
If second argument is a negative integer, round
rounds
the digits to the left of the decimal point:
round(123.45, 1), round(123.45, 0), round(123.45, 1), round(123.45, 2), round(123.45, 3)
Rounding floatingpoint numbers of large absolute value is affected by internal nonsignificant digits:
x := 10^30/3.0
Note that only the first 10 decimal digits are "significant". Further digits are subject to roundoff effects caused by the internal binary representation. These "insignificant" digits are part of the integer produced by rounding:
round(x)
delete x:
Exact numerical expressions are internally converted to floatingpoint
numbers before rounding. Consequently, the current setting of DIGITS
can
affect the result:
x := 10^30  exp(30)^ln(10)
Note that the exact value of this number is 0. Floatingpoint evaluation is subject to severe cancellations:
DIGITS := 10: float(x), round(x)
The floatingpoint result is more accurate when calculated with a higher precision. The rounded values change accordingly:
DIGITS := 20: float(x), round(x)
DIGITS := 30: float(x), round(x)
delete x, DIGITS:
On floatingpoint intervals, round
behaves
as follows:
round(3.5...6.7)
This interval contains the results of round(x)
for
all
.
Because there are finite numbers represented as RD_INF
and RD_NINF
,
respectively, round
returns very small or large
representable numbers in certain cases:
round(RD_NINF...RD_NINF)
 

Integer. If 
Arithmetical expression.
x