Member-only story
Why is it not same in Python?
2 min readSep 24, 2024
Explanation:
a = 0.2 + 0.4
:
- This line adds 0.2 and 0.4, resulting in 0.6.
- However, due to floating-point precision limitations in computers, the actual value stored in
a
might be slightly different from the exact mathematical value of 0.6.
b = 0.6
:
- This line assigns the value 0.6 directly to
b
.
print(a == b)
:
- This line compares the values of
a
andb
. Since the values might differ slightly due to floating-point precision, the comparison evaluates toFalse
.
a = 0.1 + 0.3
:
- This line adds 0.1 and 0.3, resulting in 0.4.
- Again, due to floating-point precision, the actual value stored in
a
might be slightly different from the exact mathematical value of 0.4.
b = 0.4
:
- This line assigns the value 0.4 directly to
b
.
print(a == b)
:
- This line compares the values of
a
andb
. In this case, the values might be close enough within the floating-point precision, so the comparison evaluates toTrue
.
Key Points:
- Floating-point numbers are represented in binary format with limited precision, which can lead to slight inaccuracies when performing arithmetic operations.
- Comparing floating-point numbers for exact equality can be unreliable due to these precision limitations.
- If you need to compare floating-point numbers for equality, it’s often better to check if they are within a certain tolerance range rather than expecting exact equality.