目次
使用説明書
次のプログラムは、浮動小数点整数がすべての 10 進数を正確に表現できないことを示しています-
これらのエラーは、システムの基礎となる CPU とその浮動小数点ユニットで使用される IEEE 754 算術標準の「機能」です。 float インスタンスを使用してコードを作成する場合、Python の float データ型はネイティブ表現を使用してデータを保持するため、このようなエラーを防ぐためにできることは何もありません。
17 桁の精度
ネイティブ浮動小数点
高速です。これは、多数の計算を実行する必要がある状況では非常に重要です。
上記のプログラムを実行すると、次の出力が生成されます -
-
対照的に、他のアルゴリズムのエラー伝播特性を実際に研究して理解する必要があります。
この記事では、特定の状況下では通常の計算が失敗するため、正しい 10 進数の計算が必要であることを学びました。 2 つの別個の関数、decmal() と fsum() を使用して正確な 10 進数の計算を実行する方法を学びました。また、 localcontext() 関数を使用して結果の精度を設定する方法も学びました。
ホームページ バックエンド開発 Python チュートリアル Python を使用して正確な 10 進数の計算を行うにはどうすればよいですか?

Python を使用して正確な 10 進数の計算を行うにはどうすればよいですか?

Aug 23, 2023 pm 03:53 PM
python 正確な 小数計算

Python を使用して正確な 10 進数の計算を行うにはどうすればよいですか?

この記事では、Python で正確な 10 進数の計算を行う方法を学びます。

使用説明書

  • 10 進数モジュールの Decimal() 関数の使用

  • 数学モジュールの fsum() 関数を使用します

浮動小数点数がすべての 10 進数を正確に表現できないことはよく知られた欠点です。さらに、単純な数学的計算でも多少の誤差が生じる可能性があります。たとえば、-

###例###

次のプログラムは、浮動小数点整数がすべての 10 進数を正確に表現できないことを示しています-

リーリー ###出力###

上記のプログラムを実行すると、次の出力が生成されます -

リーリー

これらのエラーは、システムの基礎となる CPU とその浮動小数点ユニットで使用される IEEE 754 算術標準の「機能」です。 float インスタンスを使用してコードを作成する場合、Python の float データ型はネイティブ表現を使用してデータを保持するため、このようなエラーを防ぐためにできることは何もありません。

10 進数モジュール

を使用すると、パフォーマンスが多少犠牲になりますが、精度が向上します。以下で見てみましょう。

方法 1: 10 進数モジュールの Decimal() 関数を使用する ###例### 次のプログラムは、Decimal() 関数を使用して正確な 10 進数を計算する例を示しています。 リーリー ###出力###

上記のプログラムを実行すると、次の出力が生成されます -

リーリー

上記のコードでは、数値が文字列として指定されていることに最初は少し奇妙に感じるかもしれません。ただし、10 進数オブジェクトは期待どおりに機能します (すべての一般的な数学演算がサポートされているなど)。これらを印刷したり、文字列書式設定関数で使用したりすると、通常の数値のように見えます。

桁数や丸め方法など、計算のさまざまな側面を制御することは、

decmal

の重要な機能です。

###例###

これを行うには、ローカル コンテキストを作成し、その設定を変更します。

リーリー ###出力###

上記のプログラムを実行すると、次の出力が生成されます -

リーリー

精度を向上させるには、精度の値を「60」に増やします

###例### リーリー ###出力### 上記のプログラムを実行すると、次の出力が生成されます - リーリー

方法 2: 数学モジュールの fsum() 関数を使用する

10 進数モジュールは、IBM の「Universal Decimal Arithmetic 仕様」を実装しています。

言うまでもなく、この記事の範囲を超えたカスタマイズ オプションが多数あります。

Python 初心者は、浮動小数点データ型の精度の問題を解決するために 10 進数モジュールを使用したくなるかもしれません。ただし、アプリケーション分野を理解する必要もあります。通常、通常の浮動小数点タイプは、科学または工学の問題、コンピュータ グラフィックス、またはその他の科学的な性質のものを扱う場合によく使用されます。

たとえば、実世界では、浮動小数点数によって提供される

17 桁の精度

で測定できる要素はほとんどありません。したがって、小さな計算誤差があっても影響はありません。さらに、

ネイティブ浮動小数点

は大幅に

高速です。これは、多数の計算を実行する必要がある状況では非常に重要です。

###例###

ただし、間違いを完全に避けることはできません。多くのアルゴリズムは数学者によって広く研究されており、一部のアルゴリズムは他のアルゴリズムよりもエラーの処理に優れています。さらに、キャンセルの減算や大小の数値の加算を行うと結果が生じる可能性があるため、注意が必要です。

リーリー ###出力###

上記のプログラムを実行すると、次の出力が生成されます -

リーリー

fsum() 関数は、指定された範囲または反復可能なオブジェクト間の合計を見つけるために使用されます。数学ライブラリをインポートする必要があります。数学的な計算で広く使用されています。

###文法###

以下は関数の構文です。

リーリー

反復可能なオブジェクトは範囲、配列、またはリストです。

戻り値の型 - 浮動小数点数を返します。 ###例### 次の例は、

math.fsum()

-

でのより正確な実装に使用できます。 リーリー ###出力###

上記のプログラムを実行すると、次の出力が生成されます -

リーリー

対照的に、他のアルゴリズムのエラー伝播特性を実際に研究して理解する必要があります。

それでも、金融などのトピックを扱うプログラムでは、10 進数モジュールが最もよく使用されます。これらのシステムの計算に小さな誤差が現れると、非常に不快なものになります。

したがって、10 進数モジュールは、この状況を回避する方法を提供します。 Python がデータベースと対話するとき、特に財務データにアクセスするときに、Decimal オブジェクトが再び発生することがよくあります。

###結論は###

この記事では、特定の状況下では通常の計算が失敗するため、正しい 10 進数の計算が必要であることを学びました。 2 つの別個の関数、decmal() と fsum() を使用して正確な 10 進数の計算を実行する方法を学びました。また、 localcontext() 関数を使用して結果の精度を設定する方法も学びました。

以上がPython を使用して正確な 10 進数の計算を行うにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPythonの選択:ガイド PHPとPythonの選択:ガイド Apr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

Python vs. JavaScript:学習曲線と使いやすさ Python vs. JavaScript:学習曲線と使いやすさ Apr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

ターミナルVSCODEでプログラムを実行する方法 ターミナルVSCODEでプログラムを実行する方法 Apr 15, 2025 pm 06:42 PM

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。

Windows 8でコードを実行できます Windows 8でコードを実行できます Apr 15, 2025 pm 07:24 PM

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

VSCODE拡張機能は悪意がありますか? VSCODE拡張機能は悪意がありますか? Apr 15, 2025 pm 07:57 PM

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。

Visual StudioコードはPythonで使用できますか Visual StudioコードはPythonで使用できますか Apr 15, 2025 pm 08:18 PM

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

PHPとPython:彼らの歴史を深く掘り下げます PHPとPython:彼らの歴史を深く掘り下げます Apr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

See all articles