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方法中的所有指令都将使用严格的浮点计算。