gpt4 book ai didi

java - strictfp 敏感 JVM 示例

转载 作者:搜寻专家 更新时间:2023-11-01 00:57:25 24 4
gpt4 key购买 nike

我们都非常了解 strictfp 的工作原理。

像这样:

package com.hk.basicjava.tests.strictfp;

import java.util.*;

public class StrictFP {
public static void main(String[] argv) {
double d = Double.MIN_VALUE;
System.out.println("non strictfp : " + notStrictFP(d)); // may be 4.9E-324
System.out.println("strictfp : " + strictFP(d)); // should be 0
}

static double notStrictFP(double a) {
return (a / 2 ) * 2;
}
static strictfp double strictFP(double a) {
return (a / 2 ) * 2 ;
}
}

但是,有没有人知道特定的硬件/操作系统(可能还有 JRE)组合,使用和不使用 strictfp 的方法返回的结果是不同的 说明符?

我尝试了几种组合,但没有什么区别。

最佳答案

您得到一个 double 可以准确表示的数字:Double.MIN_VALUE;所以我对没有区别并不感到惊讶。如果您使用生成无法保持其精度的数字的算术,则相同的算术会产生两个不同的结果。 strictfp 在这种情况下会起作用,JVM 两次都以相同的方式近似回答。

关于java - strictfp 敏感 JVM 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14512044/

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