Floating point error in representation?
when i make this multiplication
0.94 * 8700
the output is
8177.999999999999
but it should have been
开发者_JS百科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?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
.
It isn't an error. IEEE floats can't represent decimal numbers exactly.
精彩评论