when i make this multiplication
0.94 * 8700
the output is
8177.999999999999
but i
It isn't an error. IEEE floats can't represent decimal numbers exactly.
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
.