JAVA中 Double或者Float包装类中的equals方法与对应数值型的比较略有区别
1. equals使用了XXXToLongBits方法将浮点数转换成long型比较
2. 正数和负数转换有所区别,0.0d转换为0 ;-0.0d转换为-9223372036854775808
其他情况正数与其相反数与转换结果一一对应,也互为相反数
3. -0.0+0.0=0.0
4. 使用集合时,如HashMap,Double为Key时请注意
new Double(0d).equals(new Double(-0.0d)) 结果为 false
最后
以上就是听话巨人最近收集整理的关于JAVA Double Float包装类0.0与-0.0 equals返回 false 问题的全部内容,更多相关JAVA内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复