Excel, like almost all computer software does binary math. Most terminating
decimal fractions are non-terminating binary fractions that can only be
approximated (just as 1/3 can only be approximated as a finite decimal
fraction).
The decimal value of the binary approximation to 17.15 is
17.14999999999999857891452847979962825775146484375, so that the first term in
your calculation, =17.15-17, correctly returns
0.14999999999999857891452847979962825775146484375, which Excel displays to
its documented 15 digit limit as 0.149999999999999
Similarly, the decimal value of the binary approximation to 8.3 is
8.300000000000000710542735760100185871124267578125, so that another part of
your calculation, =8.3-8, is
0.300000000000000710542735760100185871124267578125, which Excel displays to
its documented 15 digit limit as 0.300000000000001.
The final subtraction, which you presume to be 17.25-8.5 is actually
17.249999999999996447286321199499070644378662109375
-8.5000000000000017763568394002504646778106689453125
----------------------------------------------------
8.7499999999999946709294817992486059665679931640625
Excel's math is exactly correct, given the initial approximations to numbers
that cannot be exactly represented in binary. The rounding that solved your
problem works because for the type of calculations you are doing, the net
result is to reduce unwanted residues of these approximations. More
generally, standard programming practice for over half a century is to not
test for exact equality with floating point calculations, but rather to test
for approximate equality, where the acceptable level of approximate equality
is defined by the type of calculations being done.
Jerry