Java中的NaN(非数)、Infinity(无穷大)

直接上图:
在这里插入图片描述
为什么判断自己等于自己 结果还是 false?

先来说一下NaN 和 Infinity
Java中提供了三个特殊的浮点数值:正无穷大、负无穷大、非数,用来表示溢出和出错。(只针对浮点数)
正无穷大:正数除以0.0得到正无穷大;(POSITIVE_INFINITY)
负无穷大:负数除以0.0得到负无穷大;(POSITIVE_INFINITY)
非数:0.0/0.0或对一个负数开方得到一个非数;(NaN)

看源码就明白了:

在这里插入图片描述
在这里插入图片描述
规定:

  • 所有的正无穷大的数值都是相等的
  • 所有的负无穷大的数值都是相等
  • 而NaN不与任何数值相等,甚至和自己都不相等

回到开始的笔试题,一切都变得简单明了
Double是封装类型,“== ” 比较的是对象引用的地址,同一个对象的地址是一样的,所以结果是 true
基本数据类型比较的是值,所以(NaN == NaN)结果为 false, (Infigy == Infity)结果是 true

有问题希望在评论区多多指教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值