如果不使用strictfp,代码是否会变得不合规?
作者:互联网
我们进行了第一次代码审计,有人告诉我,不使用strictfp进行浮点运算可能会让我们被标记.软件在Windows机器上编码并部署到Solaris机器以供生产使用.有关它的任何建议是真的吗?
另外,如果不使用’strictfp`可以使浮点算术代码不兼容或不可移植,为什么还要以非严格的方式进行计算呢?
CERT Secure Coding Standards, NUM53-J让我觉得使用strictfp是强制性的:
Programs that require consistent results from floating-point operations across different JVMs and platforms must use the strictfp modifier.
解决方法:
如果您的应用程序需要浮点运算在不同JVM之间保持一致,那么是的,您需要strictfp.如果没有,那么不,你没有.某些应用程序不需要一致性,并且可以在不使用strictfp可以提供的计算的中间步骤期间获得更高精度的潜力.其他人需要为相同的输入提供完全相同的输出,因此需要strictfp来保证输出的可移植性.
标签:java,portability,strictfp 来源: https://codeday.me/bug/20190824/1706832.html