Python の浮動小数点計算精度の問題の原因と解決策は何ですか?
浮動小数点計算を実行すると、精度の問題が頻繁に発生します。これは、コンピュータが浮動小数点数を表すのに 10 進数ではなく 2 進数を使用するためです。 2 進数では一部の 10 進数を正確に表現できないため、浮動小数点の計算では精度の問題が発生します。
1. 浮動小数点計算の精度の問題の原因:
2. 浮動小数点計算の精度の問題の解決策:
以下は、Decimal モジュールを使用したコード例です:
from decimal import Decimal # 设置精度为10位 Decimal.getcontext().prec = 10 # 浮点数计算 x = Decimal("1.23") y = Decimal("4.56") result = x + y print(result)
以下は分数モジュールを使用したコード例です:
from fractions import Fraction # 分数计算 x = Fraction(1, 3) y = Fraction(2, 5) result = x + y print(result)
次は、round 関数を使用したコード例です。
# 浮点数计算 x = 1.23 y = 4.56 result = round(x + y, 2) print(result)
要約:
浮動小数点数の計算を実行するときは、計算の精度に注意する必要があります。 Decimal モジュール、fractions モジュール、round 関数を使用し、無理数計算を回避することで、浮動小数点計算の精度を向上させることができます。実際のアプリケーションでは、計算要件に基づいて浮動小数点計算の精度に対処する適切な方法を選択する必要があります。
以上がPython の浮動小数点計算精度の問題の原因と解決策は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。