How to Round Numbers Up and Down in Python
It is common to have numbers that need to be rounded in Python. Fortunately, there is a native Python round()
function for rounding decimal/floating-point numbers to their nearest integer and a math
package with methods for always rounding up or down to a whole number.
In this tutorial, we will learn how to round numbers in Python in a variety of different ways with examples.
Round to the Nearest Integer
To round to the nearest whole number, supply the decimal/floating-point number inside the ()
(parenthesis) of the round()
function. In the example below, we will store the output from round()
in a variable before printing it.
# round to nearest integer
rounded = round(1.35)
print(rounded)
1
The nearest integer to 1.35
is 1
and when we put that float into round()
, 1
was indeed returned.
Round Float Up
To always round a number up to an integer regardless of whether it is the closest whole number we can use the ceil()
method, which is available on the math package. To use it, import the math package and then pass the number to round up in the ()
(parenthesis) or math.ceil()
.
# round float up
import math
result = math.ceil(1.35)
print(result)
2
2
is not the closest integer to 1.35
but ceil()
rounded it up anyway.
Round Float Down
To always round a number down, use the floor()
method of the math package passing the number to round inside the ()
(parenthesis) of math.floor()
.
# round float down
import math
result = math.floor(1.75)
print(result)
1
In the example above, math.floor()
rounded 1.75
down to 1
.
Round to a Fixed Number of Decimal Places
To round to a decimal place on a number, pass the level to round to as the second argument of the round()
function.
# round to a fix decimal place
rounded = round(1.35, 1)
print(rounded)
1.4
In the example above we are essentially rounding 35
as that is the first decimal place in 1.35
.
Round all Values in a Python list
To round all the values in a list we can loop through the list of numbers and round each value before appending it to a new array.
# round all numbers in a list
numbers = [1.23, 4.435, 2.532, 6.2, 1.6]
rounded_list = []
for num in numbers:
rounded_list.append(round(num))
print(rounded_list)
[1, 4, 3, 6, 2]
Using list Comprehension
A shorter way to round a list and create a new one containing those values is to use list comprehension. Let's perform the exact same task ask above with list comprehension.
# round list numbers with list comprehension
numbers = [1.23, 4.435, 2.532, 6.2, 1.6]
rounded_list = [round(num) for num in numbers]
print(rounded_list)
[1, 4, 3, 6, 2]
Conclusion
You know now how to round numbers in Python in a variety of different ways depending on how the rounding should behave.