Round number
The round(x,n) method returns a rounded number x to n decimals. The arguments:
- x : number to round
- n : number of decimals
#!/usr/bin/python
x = round(1.5056, 2)
print(x)
which would return 1.06
Rounding errors
You would probably round 1.85, 2.85, 3.85, 4.85 and 5.85 up, right? If you try this in a computer you won't get that result:print( round(1.85, 1) )
print( round(2.85, 1) )
print( round(3.85, 1) )
print( round(4.85, 1) )
print( round(5.85, 1) )
print( round(6.85, 1) )
Decimal places are not exact in a computer system, which uses base 2 instead of base 10. You can view the value that round returns with the Decimal module:
#!/usr/bin/python
from decimal import Decimal
print( Decimal(1.85) )
print( Decimal(2.85) )
print( Decimal(3.85) )
print( Decimal(4.85) )
print( Decimal(5.85) )
print( Decimal(6.85) )
It will print the values that are stored in the computer memory. You might be surprised. These numbers are called floating points.
Round to the nearest number
Round up If you want all floating points to be rounded up, use the math.ceil(x) method instead:#!/usr/bin/python
import math
print( math.ceil(2.5) )
Round down If you want a floating point to be rounded down, you could use
#!/usr/bin/python
import math
print( math.floor(2.5) )
Practice
Stop reading. Start writing Python.
PyChallenge gives you interactive exercises in your browser — no install needed.
Practice Python with interactive exercises