私は次のように計算しました。
>>> float(10.0-9.2)
0.800000000000000*7*
10.0-9.2 を実行しても、上記の結果が得られました。余分な7が結果に来るのはなぜですか?
私はpython 3.2を使用しています。
私は次のように計算しました。
>>> float(10.0-9.2)
0.800000000000000*7*
10.0-9.2 を実行しても、上記の結果が得られました。余分な7が結果に来るのはなぜですか?
私はpython 3.2を使用しています。
浮動小数点演算には、数値のバイナリ近似に基づいているため、組み込みの問題があります。
これについては、Python ドキュメントに適切な説明があります。
より正確な回答が必要な場合は、decimal
モジュールをチェックアウトできます。
これは、すべてのプラットフォームでの 2 進浮動小数点演算の典型です。アプリケーションがこの誤差範囲内の丸め誤差を許容できない場合は、代わりにDecimalオブジェクトを使用できます。