Java关键字strictfp
java关键字strictfp是strict float point的缩写,指的是精确浮点,它是用来保证浮点数运算的准确性。
通常Java对于浮点数的运算采取一种近乎我行我素的方式来完成浮点数的运算操作,在不同的Java编译器以及运行环境下同一个浮点数运算可能会得到不同的结果,导致意想不到的错误。
strictfp声明的类、接口或方法,那么在所生命的范围内,Java编译器以及运行环境会完全按照IEEE-754浮点数算术标准来执行,在这个关键字声明的范围内所有浮点数的计算都是精确的。
当一个类、接口被strictfp修饰时,内部的所有方法都会被自动修饰。
因此,strictfp可以保证浮点数运算的准确性,保证在不同的硬件平台上会有一致的运行结果。
public strictfp class TestStrictfp {
private static void testStaticMethod(){
float f = 0.123456f;
double d = 3.141592653d;
double sum = f + d;
System.out.println(sum);
}
public void testMethod(){
float f = 0.123456f;
double d = 3.141592653d;
double sum = f + d;
System.out.println(sum);
}
public static void main(String[] args) {
float f = 0.123456f;
double d = 3.141592653d;
double sum = f + d;
System.out.println(sum);
TestStrictfp.testStaticMethod();
TestStrictfp testStrictfp = new TestStrictfp();
testStrictfp.testMethod();
}
}
版权声明:本文为qq_39310287原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。