【发布时间】:2012-08-10 18:07:36
【问题描述】:
浮点算术运算是否可能在不同的 CPU 上产生不同的结果? CPU是指所有x86和x64。不同的结果是指即使只有一个最不重要的位不同。我需要知道我是否可以在项目中使用浮点运算,在不同机器上获得与相同输入对应的完全相同的结果至关重要。
编辑:添加了 c++ 标签。
还要澄清:我需要可重现的结果运行时。我不希望从不同的编译中得到相同的结果。
【问题讨论】:
-
它们应该产生完全相同的结果。除非您使用的是非常旧的奔腾...
-
对于真正具有数学意义的可重现结果,请使用小数,而不是浮点数。有关两者之间区别的更多信息,请参阅this 帖子。
-
@aguazales 我不使用 Ruby,只要它们在所有 FPU 上的工作方式完全相同,我也可以使用浮点数,所以如果它们真的可以使用,那么最大的问题仍然存在? :]
-
@Wug haha 是的,我听说过那个错误,我不需要介绍那个案例:]
-
哎呀,对不起!我以为我正在浏览 Ruby on Rails 标签:S 我的错。
标签: c++ floating-point fixed-point