不同架构下的浮点结果不一致!!如何继续

Inconsistency in floating point results on Different Architecture!!! How to Proceed?

本文关键字:何继续 继续 不一致 结果      更新时间:2023-10-16

当我在不同的体系结构上运行应用程序时,我得到了不一致的浮点结果。这发生在小数点后第三位。我能够在相同的架构上获得可重复的结果,但当我在不同的架构上运行时,我得到浮点结果的不一致。我说的两个建筑是nehalem和sandy bridge。该应用程序是一个64位应用程序。我使用的是Visual Studio 2010,它有Intel composer XE 2013 c++ sp1。我尝试了下面链接中推荐的解决方案,但它没有改变任何东西。在我工作的这个行业,精确到小数点后16位的数据是极其重要的。我也在英特尔论坛上发布了这个。任何帮助都是感激的

https://software.intel.com/en-us/articles/consistency-of-floating-point-results-using-the-intel-compiler

如果你需要16位的精度(或者依赖于在所有计算机上的结果完全相同),那么你不应该使用float/double。

这些类型对于快速、近似的结果非常有用。如果您确实需要精确的结果,则必须使用类似bignum的类。