これは、私が書いたより大きなプログラムのバグであり、私には理解できません。Python 2.7 を使用しています。
n = 0.5
while n < 2:
print(int(n * 100))
n += 0.1
90、100、および 110 の出力は 1 ずれています。切り捨てられた出力: 50、60、70、80、89、99、109、120、130、140、...
これは、a) n = 0.8 で開始する、b) 浮動小数点数を直接出力する、または c) 次のようにループを使用して n をインクリメントしない場合には発生しません。
n = 0.9
print(int(n * 100))
これには多くの回避策があることは知っていますが、なぜこれが発生するのかについてはまだ興味があります. これは、生データの出力ファイルを順序付けするためのファイル命名機能の一部でした。前もって感謝します!