7

私は次のように計算しました。

>>> float(10.0-9.2)
0.800000000000000*7*

10.0-9.2 を実行しても、上記の結果が得られました。余分な7が結果に来るのはなぜですか?

私はpython 3.2を使用しています。

4

3 に答える 3

16

浮動小数点演算には、数値のバイナリ近似に基づいているため、組み込みの問題があります。

これについては、Python ドキュメントに適切な説明があります。

より正確な回答が必要な場合は、decimalモジュールをチェックアウトできます。

于 2012-05-01T19:55:00.340 に答える
0

これは、すべてのプラットフォームでの 2 進浮動小数点演算の典型です。アプリケーションがこの誤差範囲内の丸め誤差を許容できない場合は、代わりにDecimalオブジェクトを使用できます。

于 2012-05-01T19:56:40.960 に答える