ホームページ > バックエンド開発 > Python チュートリアル > Python で浮動小数点数を正確に比較するにはどうすればよいですか?

Python で浮動小数点数を正確に比較するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-26 19:39:18
オリジナル
558 人が閲覧しました

How Can I Accurately Compare Floating-Point Numbers in Python?

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)
ログイン後にコピー

パラメーターの説明:

  • rel_tol: 相対許容誤差を定義し、値の大きさに基づいて許容可能な差を調整します。
  • abs_tol: 絶対許容誤差を指定し、数値の大きさを考慮せずに直接比較できるようにします。

math.isclose 関数またはカスタム関数を使用すると、正確な比較が保証されます。浮動小数点数を近似的に等価化し、精度の問題によってもたらされる課題に対処します。

以上がPython で浮動小数点数を正確に比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート