The round()
function returns a floating-point number rounded to the specified number of decimals.
Example
number = 13.46
# round 13.46 to the nearest integer
rounded_number = round(number)
print(rounded_number)
# Output: 13
round() Syntax
The syntax of the round()
function is:
round(number, ndigits)
round() Parameters
The round()
function takes two parameters:
- number - the number to be rounded
- ndigits (optional) - number up to which the given number is rounded; defaults to 0
round() Return Value
The round() function returns the
- nearest integer to the given number if
ndigits
is not provided - number rounded off to the
ndigits
digits ifndigits
is provided
Example 1: How round() works in Python?
# for integers
print(round(10))
# for floating point
print(round(10.7))
# even choice
print(round(5.5))
Output
10 11 6
Example 2: Round a number to the given number of decimal places
print(round(2.665, 2))
print(round(2.675, 2))
Output
2.67 2.67
Note: The behavior of round()
for floats can be surprising. Notice round(2.675, 2)
gives 2.67
instead of the expected 2.68
. This is not a bug: it's a result of the fact that most decimal fractions can't be represented exactly as a float.
When the decimal 2.675
is converted to a binary floating-point number, it's again replaced with a binary approximation, whose exact value is:
2.67499999999999982236431605997495353221893310546875
Due to this, it is rounded down to 2.67.
If you're in a situation where this precision is needed, consider using the decimal
module, which is designed for floating-point arithmetic:
from decimal import Decimal
# normal float
num = 2.675
print(round(num, 2))
# using decimal.Decimal (passed float as string for precision)
num = Decimal('2.675')
print(round(num, 2))
Output
2.67 2.68