Python での浮動小数点数の等価性の近似: 標準ライブラリ関数による救済
浮動小数点数の正確な等価性の比較には問題が生じる可能性があることは広く認識されています。浮動小数点精度の制限により、単純な等価性チェックの信頼性が低くなります。 Python でこの課題を克服するにはどうすればよいでしょうか?
Python の組み込みソリューション
Python バージョン 3.5 では、この目的のために 2 つの重要な関数 math.isclose と cmath.isclose が導入されました。 。これらの関数は、PEP 485 で定義されているように、精度関連の不一致を考慮しながら浮動小数点の堅牢な比較を可能にします。
isclose 関数
isclose 関数は、次の 3 つのパラメーターを受け取ります。
rel_tol は、許容される偏差のパーセンテージを表します。 a と b の大きさ。一方、abs_tol は、大きさに関係なく満たさなければならない絶対的なしきい値です。
許容差に関する考慮事項
この関数は、a と b の間の絶対的な差を比較します。 rel_tol * max(|a|, |b|) と abs_tol の両方に。差がこれらの値のいずれよりも小さい場合、float は等しいとみなされます。
以前の 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)
この関数を使用すると、自信を持って実行できます。浮動小数点を比較して近似的に等しいかどうかを確認します。これは、Python で数値データを扱うときに非常に貴重なツールです。
以上がPython で浮動小数点数が等しいかどうかを確実に比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。