私のコード:
a = '2.3'
a
浮動小数点値として表示したかったのです。
は文字列なのでa
、試しました:
float(a)
私が得た結果は次のとおりです。
2.2999999999999998
この問題の解決策が欲しいです。お願いします、助けてください。
私はこのチュートリアルに従っていました。
私のコード:
a = '2.3'
a
浮動小数点値として表示したかったのです。
は文字列なのでa
、試しました:
float(a)
私が得た結果は次のとおりです。
2.2999999999999998
この問題の解決策が欲しいです。お願いします、助けてください。
私はこのチュートリアルに従っていました。
Python よりも浮動小数点型の理解に反映されていると思います。この「不正確さ」の背後にある理由については、浮動小数点数に関する私の記事(.NET ベースですが、それでも関連があります) を参照してください。正確な 10 進数表現を保持する必要がある場合は、decimal モジュールを使用する必要があります。
これは Python の欠点ではなく、浮動小数点数をコンピューターに格納する方法の欠点です。実装言語に関係なく、同様の問題が発生します。
A を浮動小数点として「表示」したいとおっしゃいましたが、文字列だけを表示してみませんか? 視覚的には、期待するものと同じになります。
Jon が述べたように、必要が浮動小数点数を「表示」するだけではない場合は、decimal モジュールを使用して正確な表現を格納する必要があります。
理由を説明する優れた回答。標準ライブラリから可能な実用的なソリューションを追加したいだけです:
>>> from decimal import Decimal
>>> a = Decimal('2.3')
>>> print a
2.3
これは実際には Python の (非常に) FAQ であり、ここで回答を読むことができます。