有没有办法在 java 中加倍 d + 1 == d

Is there a way that double d + 1 == d in java

我很好奇是否有 d + 1 == d 的方法。如果 d 是双精度数。 也许有人可以与我分享一些知识。

当然可以。对于非常大(或小)的双精度数(或 Double.POSITIVE_INFINITY),浮点精度将不足以存储 1 个差异,因此 d + 1 == d 将为真。

是的,当然。

class Main {  
  public static void main(String args[]) { 
    System.out.println(1.0e52 + 1); 
  } 
}

打印

1.0E52

对于绝对值至少为 253 的数字,这实际上是正确的,因为 doublemantissa有 52 位精度。