浮動小数点数で 2 つの小数点を保持する
浮動小数点数を扱う場合、浮動小数点数を特定の小数点以下に制限することが望ましいことがよくあります。小数点の数。ただし、単にround()関数を使用するだけでは、次のような動作で見られるように、予期しない結果が生じる可能性があります:
>>> a 13.949999999999999 >>> round(a, 2) 13.949999999999999
これは、浮動小数点数ではすべての数値を正確に表現することに限界があるために発生します。メモリに保存されている値は、表示されている値と常に同じであるとは限りません。
浮動小数点の精度について
Python で使用される倍精度浮動小数点数の精度は、およそ16桁の精度。これは、13.95 のような数値が次のような方法で表現されることを意味します。
125650429603636838/(2**53)
round() 関数を適用すると、結果は依然として同じ浮動小数点値であり、内部的には同じ制限で表現されます。
>>> 125650429603636838/(2**53) 13.949999999999999
10 進数を制限するための代替方法ポイント
小数点以下 2 桁のみを表示することが重要な場合は、次の代替案を検討してください。
例:
>>> a = 13.946 >>> print("%.2f" % a) 13.95 >>> print("{:.2f}".format(a)) 13.95 # Using decimal module >>> import decimal >>> a = decimal.Decimal('13.946') >>> a.quantize(decimal.Decimal('.01')) Decimal('13.95')
以上がPython で浮動小数点数の小数点以下 2 桁を確実に保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。