Java高级之Float类和Double类的isNaN()方法

遇到这个问题,最开始是在HashMap的源码中,在构造方法中调用了该方法

而isNaN()是Float类和Double类都有的一个静态方法,意思是判断输入的参数是否是一个NaN值。

方法体就只有一条语句,即v!=v。

其实NaN严格来说不算是一个值,NaN全称是Not a Number,意思是“不是一个数字”,代表一种不合法,即float值和double值不合法。

而NaN在Float类和Double类中有定义。

我们知道除法的分母是不能为0的,这就是一种不合法。

Math.sqrt(-1)返回的就是一个NaN(Not a Number)。

总结:NaN就是用来指定数的不合法状态,而isNaN()就是判断输入的数是否是不合法的,不合法则返回true,合法返回false,而如果数是NaN,那么每次在内存中的地址都不一样,一定会返回true的。

可以参考百度百科

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值