I am using jdk 1.6. This is my code.
float f = 10.0f;
double d = 10.0;
System.out.println("Equal Status : " + (f == d));
then the system shows the answer as true. But if I modified the value as
float f = 10.1f;
double d = 10.1;
System.out.println("Equal Status : " + (f == d));
then the system shows the answer as false. I know the system use Bit matching for == checking. But what is the reason behind. Can you explain about it? Thanks in advance.
While this is not “my” answer, this is about as close to “must read” literature for programmers who want to move from “meh” to “good.” Great is something truly special, so don’t think that “good” is anything to sneeze at. 🙂
What Every Programmer Needs to know about Floating Point