重複の可能性:
10 進数を 2 進数で正確に表現できないのはなぜですか?
言語 c++ 配列を宣言していて、その中に数値 (double 型) を保存しています。次に、配列内の 2 つの要素それぞれの違いを比較し始めます。例えば
a[1] = 0.05
a[2] = 0.1
a[3] = 0.15
だから私は次のことをするとき
if(a[3] - a[2] == a[2] - a[1] )
条件が偽になる!!
デバッグ後、0.05 が 0.0499......993 として配列に保存されていることがわかりました。ケースは 0.10 と 0.15 で似ています。
どうすればこの問題を克服できますか?