IEEE standards allow for a +0.0 and a -0.0. If you compared the two values in C++ they would come out equal. I've looked into Java and this isn't the case. When you define a hashtable in Java +0.0 hashes to a different value than -0.0. Why would you want to have two values, which are essentialy the same, to hash to different values????????? This is more a theoretical question...