bankuz个人页面-阿里云开发者社区

0
1

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
  • 高分内容
  • 最新动态
  • 文章
  • 问答
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息
  • 回答了问题 2020-06-11

    泰山版《Java开发手册》答开发者问

    泰山版《Java开发手册》—第8页—第四章节OOP规约—第9点:关于浮点数之间等值判断的强制规约,我个人觉着不合理,或者是描述不够准确。以下为个人理解,如有错误,敬请指出,感谢!

    基本类型不能用==,包装类型不能用equals,这应该限于特定场景,即做等值判断的两个对象是经过计算得来的,该场景下的等值判断会由于浮点数计算不精确,而导致判断结果与预期不符,其背后原因是计算机的二进制无法精确表示浮点数。

    如果做等值判断的两个对象不是经过计算得来,那么并不会因为计算损失精度而导致判断失败,这种情况下用==和equals判断未尝不行,毕竟包装类还重写了equals方法,floatToIntBits和doubleToLongBits分别将Float和Double转成int和long,然后用==来判断。

    踩0 评论0
正在加载, 请稍后...
滑动查看更多