Bug in equality checks? 28.15e-3 == 28.15/1000 false

2 views (last 30 days)
Gustavo Lunardon
Gustavo Lunardon on 15 Oct 2021
Commented: Paul on 15 Oct 2021
Why does this happen? It does not regocnize equality on 7.48e-3 == 7.48/1000, but it does on 7.47e-3 == 7.47/1000 as well. Another example below.
28.1e-3 == 28.1/1000
ans = logical
28.15e-3 == 28.15/1000
ans = logical

Accepted Answer

Star Strider
Star Strider on 15 Oct 2021
Wellcome to the world of floating-point approximation error!
This is roughly equivalent to expressing in decimals. The result is 0.3 an infinite number of 3 following it, never being excactly equal to .
Paul on 15 Oct 2021
Exactly and well said. I should have included a statement to that effect in my comment

Sign in to comment.




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!