What Is The Best Way to Compare Floats For Almost Equality In Python?

In this post, we will learn What is the best way to Compare floats for almost equality in Python as we know that float points are not always the complete number or we can say the points after decimal keeps on coming to it might produce the same error so it is not a good idea to make comparision the float number directly so due to that generally we try to make comparison between them used a different technique that we call Almost equality and here we are going to provide an example how we can perform the same to comparision.

Compare

Compare The Float Values

Here we are going to give an example for comparing two float numbers up to almost equality, where we are going to use the in built function of the math module as math.isclose() which was introduced to python in Python3.5 and the latest versions of the python. This function accepts some of the parameters which are listed below along with their som explanations

  1. a: The first number to be compared
  2. b:  The second number to be compared
  3. rel tol: The relative tolerance (as a float) for comparing a and b
  4. abs_ tol: The absolute tolerance (as a float) for comparing a and b.

And the example code is as followed.

import math

a = 1.23
b = 1.24
tolerance = 0.01

if math.isclose( a, b, rel_tol= tolerance):
    print(" a and b are almost equal")
else:
    print(" a and b are not almost equal")

Here we need to provide a tolerance number that could be as small as can and the accuracy will increase as we decrease the tolerance number this number is used in a formula to get the equality in two numbers and the formula here is ‘0.01*max( abs( a), abs( b))’ And the difference in between two (a, and b) it less than or equals to the this then they are considered as equals otherwise they are not this is how we made comparision using almost equals.

And for the older version of python, we need to follow another approach like simply finding the difference and that difference should compare with the tolerance number to implement the same follow the code given below.

a = 1.23
b = 1.24
tolerance = 0.01

if abs(a - b) < tolerance:
    print(" a and b are almost equal")
else:
    print(" a and b are not almost equal")

The result of this code will also reflect that we have taken the almost figure but here we are manually finding the difference which was done bu an in built function previously.

 

 

To learn more about What is the best way to compare floats for almost-equality in Python visit:  by stack over flow?

To learn more about solutions to different problems and tutorials for the concepts we need to know to work on programming along with different ways to solve any generally asked problems: How To Pass-Variables From A Java & Python Client To A Linux/Ubuntu Server Which Is Running C?.

Leave a Comment

%d bloggers like this: