In this post, we are going to learn different 10 ways to round to 2 decimal places in Python by using the python built-in round() function, str. format(),f-string, and all possible ways to round Float to 2 decimal places in python
What is Python round() function
The Python’s round() function rounds off a given number based on the number of digits passed for round off and returns a floating-point number. If the number of digits for round-off is not specified, the default value will be 0 and it returns the nearest integer.
Syntax
round(number,digits)
Parameters
- number: The number that we have to round off.
- digits: The number of digits up to the number to be rounded off.
1. How to Round to 2 decimal Places python 3
In this example, we are using Python’s inbuilt round() function to round off a float number to 2 decimal places and using the print() function to print the result.
Program Exmaple
float_num = 15.68790
rounded_num = round(float_num,2)
print('Round to 2 decimal Places :',rounded_num)
Output
Round to 2 decimal Places : 15.69
- 7 ways to generate float range in Python
- How to do add newline character in Python
- How to Take integer input single or multiple in python
- 6 Python Programs to find area of triangle
2. How to Round to different decimal places
In this example we are using the Python round() function to round off a float number to (5,3,4,2) decimal points and Finally, using print() function to print the result.
Program Example
val1 = 12.505160
val2 = 1645.7409947
val3 = -200.75
val4 = 8.5432
print('rounded to 5 decimal place:',round(val1, 5))
print('rounded to 2 decimal place:',round(val2, 2))
print('rounded to 3 decimal place:',round(val3, 3))
print('rounded to 4 decimal place:',round(val4, 4))
Output
rounded to 5 decimal place: 12.50516
rounded to 2 decimal place: 1645.74
rounded to 3 decimal place: -200.75
rounded to 4 decimal place: 8.5432
3. Python str.format() to round to 2 Decimal Places
To round off up to 2 decimal places we can use the inbuilt python string function str.format() with “{:2f}” a string and pass a float number as a parameter to the format() method. The round-off can be changed to different places {:3f} for 3 decimal places and so on.
Program Example
float_num = 5.5667
two_dec_places = "{:.2f}".format(float_num)
print('float to two decimal palace:\n',two_dec_places)
Output
float to two decimal palace:
5.57
4. Python f-string to Round off to 2 Decimal Places
In this example, we are using the f-string to round off a number to 2 decimal palaces.
Program Example to round off to 2 decimal places
float_num = 5.8967
rounded_num = f"{float_num:.2f}"
print('rounded upto 2 decimal place :\n',rounded_num)
Output
rounded upto 2 decimal place :
5.90
5. Using decimal Module
To get the correct precision, we can use the decimal module decimal() method of Python. Let us understand with an example, how to achieve this
Program Example
import decimal
original_num = 8.5656789
float_num = decimal.Decimal(original_num)
print('precision to 2 decimal place:',round(float_num,2)
)
Output
precision to 2 decimal places: 8.57
6. Regex to Truncate float Number to 2 Decimal Places
In this example, we are using the regular expression to Truncate floating Numbers to 2 Decimal Places, by defining a custom method. Here we are passing the number which we want to truncate to 2 decimal places and print the result after truncation.
Program Example
import re
def truncate_num(float_num):
return re.sub(r'^(\d+\.\d{,2})\d*$',r'',str(float_num))
print('rounded number to 2 decimal place :\n',truncate_num(float_num))
Output
rounded number to 2 decimal place :
5.89
7. Custom function to Truncate float to 2 decimal places
In this example, we are using a custom truncate function that takes two arguments as float numbers & the number of digits up to where we have to truncate the number. Here we are truncating float numbers to 2 decimal places.
Program Example
float_num = 5.8967
def truncatenum(num,digits=0):
multiplier = 10 ** digits
return int(num * multiplier) / multiplier
print('rounded number to 2 decimal place :\n',truncatenum(float_num,2))
Output
rounded number to 2 decimal place :
5.89
8. Round a float number keeping ending zero
In this example, we are rounding off a float number to 2 decimal palaces keeping the ending zero and print the result using the print() function.
Python Program to round a float number keeping ending zero
float_num = 5.8967
round_keep_zero = "%.2f" % float_num
print('round_keep_zero:\n',round_keep_zero)
Output
round_keep_zero:
5.90
9. Add extra zero after decimal in Python
In this example, we are adding extra zero after decimal places by using the format() method.
Program to Add extra zero after decimal in Python
float_num = 5.0
output_num = format(2.0, '.6f')
print('add extra zero after decimal place :\n',output_num)
Output
add extra zero after decimal place :
2.000000
10.Math module for Python Handling precision
The python math module has some built-in functionality to handle the precision.
- trunc():-This math module function is used to remove all the decimal parts from the float number and return an integer part of a number.
- ceil(): The ceil() math module is used to return the smallest integer number greater than the given number.
- floor(): The floor() is used to return the greatest integer number smaller than the given number.
Program Example
import math
float_num = 5.8967
print('number after using trunc() function :',math.trunc(float_num))
print('number after using ceil() function : ',math.ceil(float_num))
print('number after using floor() function : ',math.floor(float_num))
Output
number after using trunc() function : 5
number after using ceil() function : 6
number after using floor() function : 5