我是靠谱客的博主 听话巨人,这篇文章主要介绍JAVA Double Float包装类0.0与-0.0 equals返回 false 问题,现在分享给大家,希望可以做个参考。

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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部