当前位置:  开发笔记 > 编程语言 > 正文

如果不使用strictfp,代码是否会变得不合规?

如何解决《如果不使用strictfp,代码是否会变得不合规?》经验,为你挑选了1个好方法。

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

另外,如果不使用'strictfp`可以使浮点算术代码不兼容或不可移植,为什么还要以非严格的方式进行计算呢?

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

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

T.J. Crowder.. 6

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



1> T.J. Crowder..:

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


@Sabir_Khan:如果您正在处理抵押贷款利率和其他财务计算,肯定`strictfp`与您的申请无关,因为它[仅适用于`double`和`float`](https://docs.oracle. COM/JavaSE的/规格/ JLS/SE8/HTML/JLS-8.html#JLS-8.1.1.3).你没有使用`double`s或`float`s进行财务计算,是吗?如果是这样,您将收到更大的审计报告.对于财务,通常你想要`BigDecimal`(或直接实现其技术,即使用整数值和比例).
推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有