Python での浮動小数点数の精度比較
プログラミングの領域では、浮動小数点数が等しいかどうかを比較することが課題となります。 Bruce Dawson のような専門家が強調しているように、等しいかどうかの判断は丸め誤差や精度の制限によって複雑になります。
Python に解決策はありますか?
Python は無数の解決策を提供しますこの問題に。特に、Python 3.5 では、PEP 485 のガイダンスに従って math.isclose 関数と cmath.isclose 関数が導入されています。これらの関数は、浮動小数点数が近似的に等しいかどうかを比較する信頼性の高い手段を提供します。
実装の詳細:
import math # Compare two floating-point numbers for almost-equality result = math.isclose(0.1, 0.10000000000000001, rel_tol=1e-09, abs_tol=0.0)
以前の Python のカスタム関数バージョン:
3.5 より前の Python バージョンの場合、ドキュメントでは次のカスタム関数が推奨されています:
def isclose(a, b, rel_tol=1e-09, abs_tol=0.0): return abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)
パラメーターの説明:
math.isclose 関数またはカスタム関数を使用すると、正確な比較が保証されます。浮動小数点数を近似的に等価化し、精度の問題によってもたらされる課題に対処します。
以上がPython で浮動小数点数を正確に比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。