10 ways to round to 2 decimal places in Python

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

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