JDK 8 和 JDK 13 似乎有不同的浮点数。
我使用 Math 来安装 JDK 8:
cos(2.3) = -0.666276021279824
Run Code Online (Sandbox Code Playgroud)
在 JDK 13 上:
cos(2.3) = -0.6662760212798241
Run Code Online (Sandbox Code Playgroud)
这是怎么发生的?在使用 Windows 10 的第 11 代 Intel 和 AMD Ryzen 上存在差异。
编辑 20.03.2022:
使用 Long.toHexString(Double.doubleToRawLongBits()) 我得到不同的位模式:
我在 JDK 8 上得到:
cos(2.3) = 0xbfe5522217302fe0
Run Code Online (Sandbox Code Playgroud)
我得到了 JDK 13:
cos(2.3) = 0xbfe5522217302fe1
Run Code Online (Sandbox Code Playgroud)