当在Java中我比较(1.0d == 1.0d - Double.MIN_VALUE)时,它返回true,即使实际非常接近1.0d应该大于(1.0d - Double.MIN_VALUE)。
如果我使用Double.compare(1.0d,1.0d - Double.MIN_VALUE),则返回0.表示这两个值相等。
当我打印Double.doubleToLongBits()时,为1.0和1.0d打印相同的值 - Double.MIN_VALUE。
如果我也使用Double.MIN_NORMAL,也会发生同样的情况。
为什么会这样?我该怎么做才能使比较返回正确的结果?
谢谢!