1

C++/C では、2 つの浮動小数点数または倍精度数を絶対的に等しいかどうか比較できないことを知っています。なんらかの理由で、絶対等価を使用する if 条件を記述した場合、if 条件が同じデータに対してプログラムの異なる実行で同じ結果を返すことが保証されますか? それとも純粋に非決定論的であり、結果は異なる可能性がありますか?

4

2 に答える 2

1

同じコンパイル済みバイナリと同じ PC の場合、結果は同じになります。別のコンパイラまたは別の PC を使用すると、結果が異なる場合があります。

于 2010-09-24T19:53:26.783 に答える
0

Intel CPU を搭載したマシンでは失敗したが、AMD では正常に動作する単体テストを行ったことがあります。おそらく四捨五入に何らかの違いがあり、テストは合格/不合格の基準に正面からぶつかりました。

しかし、その理由だけで、どこにでも過度に複雑なテストをコードに散らかすことはしません。

于 2010-09-24T20:00:12.553 に答える