重複の可能性:
「for( i = 0.1 ; i != 1.0 ; i += 0.1)」が i = 1.0 で壊れないのはなぜですか?
数値 (実数) 間隔 [x, y] があります。次のようなものを使用して反復する必要があります。
nr = 0;
for (i = x; i <= y; i += step) //step is a small double value
nr++;
[-1, 1] のステップが 0.001 の場合、nr が 2001 (-1.000 ... 0.999 1.000) であることは明らかですが、nr = 2000 と計算されます (調査したところ、最後の比較に失敗しました: 0.999 + 0.001 > 1.000)。
正確な nr 値を計算するにはどうすればよいですか?