java中少见的关键字-strictfp
strictfp也就是所谓的FP-strict,可以用来修饰类,接口和方法。
当用来修饰类和接口时,类和接口内部所有的float和double表达式都是FP-strict的。
FP-strcit表示必须使用严格的浮点计算来产生理想的结果,也就是要遵循IEEE标准。
其实主要是为了保证相同的计算,每次都能有相同的结果,即使换个虚拟机,计算结果仍然一致,也可以看成是保证了java的可移植性。
比如,double r = a*b/c这么一个计算式,是先执行a*b操作,此时会产生一个中间结果,按理说这个最多存储一个64位的double类型,
但有些处理器,提供了80位的寄存器,能存储的中间结果精度更高,再拿中间结果接着做下面的计算,最终的结果截取64位,所产生的结果精度也更高。
这就导致了同一个计算式,有可能在不同的处理器上,产生的结果不一致。而采用strictfp修饰的话,表示都严格按照IEEE标准,就能避免这个问题。