gpt4 book ai didi

java - 无 strictfp 的最小精度单位

转载 作者:行者123 更新时间:2023-12-02 09:31:04 27 4
gpt4 key购买 nike

看看数学课,ulp method :

public static float ulp(float f)

如果应用该方法的方式如下:Math.ulp(Float.MAX_VALUE),则会出现 Javadoc 文档中的这条规则:

If the argument is ±Float.MAX_VALUE, then the result is equal to 2104.

能否确保从一台机器到另一台机器,这个数字 (2104) 始终是那个数字,即使 float 不是 strictfp

最佳答案

缺乏strictfp不会神奇地让你的数字做奇怪的事情。

它只是允许更精确的平台执行比结果实际拥有的更精确的计算(即,如果您在 float 上进行计算,那么非 strictfp 代码实际上可能会使用 40 位浮点寄存器作为中间步骤)。

这不会改变您在代码中看到的输入和输出仍然始终是 float 的事实。

换句话说:strictfp 不是 float 变量或数字的属性。它是在 floatdouble 上运行的代码的属性。

简而言之:是的,如果规范说要返回这个数字,那么它就会被返回。

关于java - 无 strictfp 的最小精度单位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57972340/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com