Pra*_*mar 3 c++ gcc
我试图在 2 个不同的平台上获得完全相同的结果,即 Solaris 和 Linux(sun-studio vs GCC)。整个代码使用双数据类型。但是当我打印输出时,我看到浮点数的差异(如小数点后 20 位)。
我需要知道的是我是否可以设置一些编译器标志来使 GCC 和 sun-studio 编译器的行为相同。附加图像显示了 Double 数据类型的差异。左侧是 GCC 的输出,另一侧是 sun-studio。
lui*_*nho 9
主要问题来自于此:
我试图在 2 个不同的平台上获得完全相同的结果
您不能保证在两个不同的平台上获得相同的结果。他们在实施浮动操作的方式上可能有很多不同。
您的问题的一种解决方案:定点算术。
另外,看看这些答案:
跨平台浮点一致性
IEEE 浮点数和双精度数是否保证在任何操作系统上都具有相同的大小?
它们是您了解正在发生的事情的一个很好的开始。
归档时间:
6 年,4 月 前
查看次数:
238 次
最近记录: