← Go Back

How to Round a Number

The round() built-in function takes a floating point number and returns an integer according to the rounding rules.

>>> round(1.4)
1
>>> round(1.5)
2

A second argument indicates the number of digits after the point with respect to which the approximation should be made.

>>> round(1,539, 2)
1.54

Note that when the last digit is 5, the function does not round up but returns the nearest even number:

>>> round(1.5)
2
>>> round(2.5) # Typically 3 would be expected.
2

If you want to round up, use the following function instead:

import math

# Source: https://stackoverflow.com/a/52617883/2116607
def custom_round(n: float, decimals: int = 0) -> float:
expoN = n * 10 ** decimals
if abs(expoN) - abs(math.floor(expoN)) < 0.5:
return math.floor(expoN) / 10 ** decimals
return math.ceil(expoN) / 10 ** decimals

print(custom_round(1.5)) # 2
print(custom_round(2.5)) # 3
print(custom_round(1.535, 2)) # 1.54

float arithmetic-operations


🐍 You might also find interesting: