我们进行了第一次代码审计,有人告诉我,不使用strictfp
浮点运算可能会让我们被标记.软件在Windows机器上编码并部署到Solaris机器以供生产使用.有关它的任何建议是真的吗?
另外,如果不使用'strictfp`可以使浮点算术代码不兼容或不可移植,为什么还要以非严格的方式进行计算呢?
CERT安全编码标准,NUM53-J让我觉得它必须使用strictfp
:
需要跨不同JVM和平台的浮点运算的一致结果的程序必须使用strictfp修饰符.
T.J. Crowder.. 6
如果您的应用程序需要浮点运算在不同JVM之间保持一致,那么您需要strictfp
.如果没有,那么不,你没有.某些应用程序不需要一致性,并且可以在不使用strictfp
可提供的计算的中间步骤期间获得更高精度的潜力.其他人需要为相同的输入提供完全相同的输出,因此需要strictfp
保证输出可移植.
如果您的应用程序需要浮点运算在不同JVM之间保持一致,那么您需要strictfp
.如果没有,那么不,你没有.某些应用程序不需要一致性,并且可以在不使用strictfp
可提供的计算的中间步骤期间获得更高精度的潜力.其他人需要为相同的输入提供完全相同的输出,因此需要strictfp
保证输出可移植.