Floating Point Error – Issues in Representation

double-precisionfloating-accuracyfloating-point

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 is 0.939999999999999946709294817992486059665679931640625.

Related Question