参见Double类的常量Double.NaN 0.0/0.0会产生一个NaN对象你可以用Double类中的isNaN方法来验证
如果你用1/0.0的话它产生的就是一个POSITIVE_INFINITY 对象,第一个问题就是这样的。为什么这样规定我就不知道 了
至于为什么i==i 返回false的问题,我将你的代码重新改写成了Double i=0.0/0.0; ,这个时候打印的是true.
所以到这里我猜想是因为装箱和拆箱所引起的。所以我换成了1.4做实验,但是很遗憾1.4给的结果也是false。
但是如果是1/0.0,那么打印出来就是true。
实际原因实在不是太清楚,但是我知道使用浮点数会很麻烦,所以能不用就不用。 |