浮点比较 - 不同运行之间的结果

时间:2010-09-24 19:46:09

标签: c++ comparison floating-accuracy deterministic non-deterministic

我知道我无法在C ++ / C上比较两个浮点数或双数字的绝对相等性。如果由于某种原因,我写了一个使用绝对相等的if条件,是否保证if条件将在相同数据的程序的不同运行中返回相同的结果?或者它纯粹是非确定性的,结果会有所不同?

2 个答案:

答案 0 :(得分:1)

对于相同的编译二进制文件和在同一台PC上,结果应该相同。如果您使用其他编译器或其他PC,结果可能会有所不同。

答案 1 :(得分:0)

我曾经在一台配备Intel CPU的机器上进行了单元测试,但在AMD上工作正常。在四舍五入中可能存在一些差异,而且更多的测试无法达到通过/失败标准。

但是我不会因为那样在各处进行过复杂测试而丢弃你的代码。