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)
The nearest integer to
1 and when we put that float into
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
# round float up import math result = math.ceil(1.35) print(result)
2 is not the closest integer to
ceil() rounded it up anyway.
Round Float Down
Two always round a number down, use the
floor() method of the math package passing the number to round inside the
() (parenthesis) of
# round float down import math result = math.floor(1.75) print(result)
In the example above,
1.75 down to
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 to a fix decimal place rounded = round(1.35, 1) print(rounded)
In the example above we are essentially rounding
3.5 as that is the first decimal place in
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]
You know now how to round numbers in Python in a variety of different ways depending on how the rounding should behave.