Java中的strictfp关键字:
定义:用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范,当对一个类或接口 使用 strictfp 关键字时,该类中的所有代码,包括嵌套类型中的初始设定值和代码,都将严格地进行计算。严格约束意味着所有表达式的结果都必须是 IEEE 754 算法对操作数预期的结果,以单精度和双精度格式表示。如果你想让你的浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,可以用关键字strictfp;
未使用.strictfp关键字:
package Text;
public class Textstrictfp {
private static double aDouble = 0.55550034455d;
private static float aFloat = 0333333300022f;
public static void main(String[] args) {
double bDouble = aDouble / aFloat;
System.out.println("aDouble" + aDouble);
System.out.println("aFloat" + aFloat);
System.out.println("bDouble" + bDouble);
}
}
使用strictfp关键字:
package Text;
public strictfp class Textstrictfp {
private static double aDouble = 0.55550034455d;
private static float aFloat = 0333333300022f;
public static void main(String[] args) {
double bDouble = aDouble / aFloat;
System.out.println("aDouble" + aDouble);
System.out.println("aFloat" + aFloat);
System.out.println("bDouble" + bDouble);
}
}
综上二者发现没有什么区别,所以这个关键字我们基本上不太使用。