3

我们即将进行第一次代码审计,有人告诉我,不使用strictfp浮点运算可能会让我们被标记。软件在 Windows 机器上编码并部署到 Solaris 机器以供生产使用。关于它是真的有什么建议吗?

另外,如果不使用'strictfp'会使浮点算术代码不兼容或不可移植,为什么仍然允许以非strictfp方式进行计算?

CERT 安全编码标准,NUM53-J让我觉得必须使用strictfp

需要跨不同 JVM 和平台的浮点运算获得一致结果的程序必须使用 strictfp 修饰符。

4

1 回答 1

6

如果您的应用程序需要浮点运算在不同 JVM 之间保持一致,那么是的,您需要strictfp. 如果没有,那么不,你没有。一些应用程序不需要一致性,并且可以从不使用的计算的中间步骤中获得更高精度的潜力中受益strictfp。其他人需要为相同的输入提供完全相同的输出,因此需要strictfp保证输出的便携性。

于 2015-12-21T09:07:48.673 回答