It’s a general rule that floating point number should never be compared like (a==b), but rather like (Math.abs(a-b) < delta)
where delta is a small number.
A floating point value having fixed number of digits in decimal form does not necessary have fixed number of digits in binary form.
Addition for clarity:
Though strict ==
comparison of floating point numbers has very little practical sense, the strict <
and >
comparison, on the contrary, is a valid use case (example – logic triggering when certain value exceeds threshold: (val > threshold) && panic();
)