我知道我无法在C ++ / C上比较两个浮点数或双数字的绝对相等性。如果由于某种原因,我写了一个使用绝对相等的if条件,是否保证if条件将在相同数据的程序的不同运行中返回相同的结果?或者它纯粹是非确定性的,结果会有所不同?
答案 0 :(得分:1)
对于相同的编译二进制文件和在同一台PC上,结果应该相同。如果您使用其他编译器或其他PC,结果可能会有所不同。
答案 1 :(得分:0)
我曾经在一台配备Intel CPU的机器上进行了单元测试,但在AMD上工作正常。在四舍五入中可能存在一些差异,而且更多的测试无法达到通过/失败标准。
但是我不会因为那样在各处进行过复杂测试而丢弃你的代码。