JDK Java Math.nextAfter() 的实现方法 5

Method of Implementing Java Math.nextAfter() for JDK 5

我需要将 JDK1.5 用于特定应用程序,并且注意到 Math 库不包含 Math.nextAfter() 函数。我可能会拼凑一个版本,但我想知道是否有人有一个聪明的方法来以模拟 Math.nextAfter() 函数的方式获取下一个 Double 值。

您可以找到 OpenJDK here 实现的功能(注意他们的许可证,您可能会或可能不会使用他们的代码,具体取决于您在项目中拥有的许可证)。
据我所见,他们的代码的作用如下:

  1. 将 double 逐字节复制为无符号整数(或在 Java 的情况下为 long)
  2. 对无符号整数进行无符号递增(或递减,具体取决于方向)(在Java中,您必须分别考虑负值和正值,因此如果值为正则为+1,否则为-1如果值为负,这是因为 2 的补码的工作原理)
  3. 逐字节将无符号整数复制回双精度数