Content received from: http://JavaFAQ.nu/java-article75.html


I just started with Java and found very strange that in simple operation like
Sunday, March 16, 2003 (04:47:42)

Posted by jalex

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.

***************************************
Our older tips: March 22, 2001 - October 21, 2002 read here.
All published and not published on site tips you can find here