I just started with Java and found very strange that in simple operation like

Question: I just started with Java and found very strange that in simple operation like:

float a = 31.335f;
float b = 12.2362f;
float result = a + b
gives
43.571200000000005 not 43.5712
Why?


Even more:
if I do simple operation
d = a + b;
d = d - b;
it will not give exactly the value of "a":
31.335 not equal to 31.334997?
Answer:
The reason is that computers usually use counting based on base 2, not 10 and if we use float variables then they often can not be exactly converted to binary number.
For doubles it is the same.
The result depends on particular case. Same numbers can be exactly converted. Not all. You should keep in mind that.

No comments:

Post a Comment