I am getting the output as false, true. Why i am getting the false at line number 1? Is it any way related to (-0.0==+0.0 ) That means, equals method will not check exactly the object value. Is it??
posted 11 years ago
This behavior is by design. According to the java API doc for the equals method of the Float class:
Note that in most cases, for two instances of class Float, f1 and f2, the value of f1.equals(f2) is true if and only if f1.floatValue() == f2.floatValue() also has the value true. However, there are two exceptions: If f1 and f2 both represent Float.NaN, then the equals method returns true, even though Float.NaN==Float.NaN has the value false. If f1 represents +0.0f while f2 represents -0.0f, or vice versa, the equal test has the value false, even though 0.0f==-0.0f has the value true. This definition allows hash tables to operate properly.
[ March 16, 2004: Message edited by: Richard Quist ]