There are several ways to round numbers in Python. We can use the built-in round
function to handle simple use cases,
the Math
module, or the NumPy
library to handle anything more sophisticated.
Using Python's round function
Python's round
function uses the "round half to even" strategy.
That means if the number being rounded is precisely halfway between
two rounded numbers, the rounding is done to the nearest even number.
round(2.5) #would result in 3
round(3.5) #would result in 4
Here are some examples using the round()
function
1. Rounding to a specific number of decimal places
num = 3.141592653589793
rounded_num = round(num, 2)
print(rounded_num) # Output: 3.14
2. Rounding to the nearest number
num = 3.7
rounded_num = round(num)
print(rounded_num) # Output: 4
num = 3.3
rounded_num = round(num)
print(rounded_num) # Output: 3
3. Rounding to the nearest multiple of a given value
base = 5
num = 17
print(base * round(num/base)) # Output: 15
Rounding with Python's Math module
Python's math
module offers several functions for rounding that offer more flexibility over the round function.
1. Rounding up with the ceil()
function
import math
num = 3.1
rounded_num = math.ceil(num)
print(rounded_num) # Output: 4
2. Rounding down with the floor()
function
import math
num = 3.9
rounded_num = math.floor(num)
print(rounded_num) # Output: 3
3. Rounding to the nearest integer with the trunc()
function
The trunc()
function truncates the decimal points of the number
import math
num = 3.7
rounded_num = math.trunc(num)
print(rounded_num) # Output: 3
4. Rounding to the nearest multiple of a given value using the ceil()
and floor()
functions
import math
num = 17
base = 5
rounded_num = math.floor(num / base) * base # round down to nearest base
print(rounded_num) # Output: 15
rounded_num = math.ceil(num / base) * base # round up to nearest base
print(rounded_num) # Output: 20
Rounding with Python's Numpy library
The numpy
library offers several methods to round numbers. The numpy
doesn't come with the default Python installation.
I used the below command to install it.
pip3 install numpy
1. Rounding to a specific number of decimal places using the round()
function
import numpy as np
num = 3.141592653589793
rounded_num = np.round(num, 3) # round to 3 decimal places
print(rounded_num) # Output: 3.142
2. Rounding to the nearest integer using the rint()
function
import numpy as np
num = 3.7
rounded_num = np.rint(num)
print(rounded_num) # Output: 4.0
num = 3.5
rounded_num = np.rint(num)
print(rounded_num) # Output: 4.0
num = 3.4
rounded_num = np.rint(num)
print(rounded_num) # Output: 3.0
Note that the rint()
function uses the "half-to-even" rounding approach.
3. Rounding up to the nearest integer using the ceil()
function
import numpy as np
num = 3.01
rounded_num = np.ceil(num)
print(rounded_num) # Output: 4.0
4. Rounding down to the nearest integer using the floor()
function
import numpy as np
num = 3.99
rounded_num = np.floor(num)
print(rounded_num) # Output: 3.0
5. Rounding to the nearest multiple of a given value using the around()
function
import numpy as np
num = 17
base = 5
rounded_num = np.around(num / base) * base
print(rounded_num) # Output: 15.0
num = 28
base = 5
rounded_num = np.around(num / base) * base
print(rounded_num) # Output: 30.0