when i make this multiplication
0.94 * 8700
the output is
8177.999999999999
but it should have been
8178
i'm using java , but i don't think this error is related to a particular Programming language
now my question is … why this happened ??
and what other numbers (just as an example) cause the same error?
Best Answer
The specific reason in your case is that the real number 0.94 cannot be represented exactly in a double precision floating point. When you type
0.94
, the actual number stored is0.939999999999999946709294817992486059665679931640625
.