This is a fact of life that impacts almost all software, not just Excel.
The math is correct, but the input numbers had to be approximated, so
the final result is approximate.
Excel (and almost all other computer software) does binary math. Most
decimal fractions (including .1) have no exact binary reprsentation
(just as 1/3 has no exact decimal representation). Excel follows the
IEEE double precision standard, which defines the approximation to 5.1 to be
5.0999999999999996447286321199499070644378662109375
Excel only displays 15 digits (see Help for specifications), where you
would need 17 digits to detect this approximation directly. However
when you subtract 5, you are then able to see the approximation that was
already present in the number you thought was 5.1
Your options are
- live with it
- round results
- do integer math (integers can be represented exactly, so that 51-50
will return 1 as expected)
Jerry
To understand what