A number has a fractional part. For example 1.45 is between and 1 and 2 and we want to round it. With round()
we can round it to 1 or 1.5.
To always round up, consider the math.ceil
method. And to always round down, use math.floor
. But to retain a fractional part, round()
is helpful.
This receives one or two arguments. The second argument is optional. Round()
returns a rounded number—we use it in an assignment.
number = 1.23456 # Use round built-in. # ... This rounds up or down depending on the last digit. print(round(number)) print(round(number, 0)) print(round(number, 1)) print(round(number, 2)) print(round(number, 3))1 0 digits 1.0 0 digits 1.2 1 digit 1.23 2 digits 1.235 3 digits, last one rounded up to 5
Let us consider this program. We use math.ceil
to always round up to the nearest integer. Round()
cannot do this—it will round up or down depending on the fractional value.
Floor
will round down to the nearest integer. The floor of 1.9 is 1. This is a mathematical function.import math number = 1.1 # Use math.ceil to round up. result = math.ceil(number) print(result) # The round method will round down because 1.1 is less than 1.5. print(round(number))2 1
There is no math.round
function in Python 3. Trying to invoke math.round
will lead to an AttributeError
. Instead, just use round()
.
Traceback (most recent call last): File "C:\programs\file.py", line 6, in <module> number = math.round(1.1) AttributeError: 'module' object has no attribute 'round'
Additional methods in Python can transform numbers as needed. The abs
method provides absolute values. Built-in math methods make programs simpler.
With round()
in Python we gain a way to reduce the number of digits past the decimal place. Round increases or decreases a number based on the last digit.