strictfp也即strict float point(精确浮点)
该关键字可应用于类、接口或者方法。当我们对一个类或者接口使用strictfp关键字时,该类中的所有代码,包括嵌套类型中的初始设定值和代码,都将严格地进行计算。严格约束意味着所有表达式的结果都必须是IEEE754算法对操作数预期的结果,以单精度和双精度格式表示。
备注:如果你想让你的浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,可以使用关键字strictfp
示例代码
public strictfp class Solution{
public static void main(String[] args) {
float afloat=0.555555f;
double adouble=0.3243243253145324d;
double sum=afloat+adouble;
float quotient=(float)(afloat/adouble);
System.out.println("float:"+afloat);
System.out.println("double:"+adouble);
System.out.println("sum:"+sum);
System.out.println("quotient:"+quotient);
}
}
对于使用strictfp关键字标记的方法必须使用严格的浮点计算来生成可再生的结果,列如,可以把main方法标记为
public static strictfp void main(String[] args)
于是,在mian方法中的所有指令都将使用严格的浮点计算。