浮動小数点演算での丸めエラーを修正する方法

文書翻訳 文書翻訳
文書番号: 214118 - 対象製品
すべて展開する | すべて折りたたむ

目次

現象

Excel や Microsoft Works の浮動小数点数の算術演算の多くの組み合わせによって非常に小さい金額が不適切な結果になる場合があります。たとえば、数式
=1*(.5-.4-.1)
数量に評価される場合があります (- 2.78E - 17)、または 0 ではなく-0.0000000000000000278。

原因

この現象の問題や Excel の機能の制限ではなく、この現象は、米国電気電子部品 (IEEE) 754 浮動小数点標準および番号をバイナリ形式で保存することが必要になるために発生します。

回避策

方法 1

浮動点演算のストレージの不整合の影響を最小限に抑えるには、計算が必要な小数点以下桁数に数値を切り上げた Round() 関数を使用します。たとえば、通貨を使用している場合は、小数点以下 2 桁に可能性が切り上げします。

=round(1*(0.5-0.4-0.1),2)

方法 2

浮動小数点の丸め誤差の 表示桁数で計算 を使用して、作業に与える影響から頻繁に防ぐことができますオプション。このオプションは、ワークシートでの表示精度には、各番号ワークシート内の値を強制します。

メモ[表示桁数で計算] オプションを使用すると、データがますます不正確な時間の経過と共にできる計算の累積的な効果を持つことができます。表示されている percision、データの正確さが維持され、特定いる場合にのみ、このオプションを使用します。

表示桁数で計算] オプションを使用するのには、次の手順を実行します。

Excel 2000、Excel 2002 および Excel 2003
  1. [ツール] メニューの [オプション] をクリックします。
  2. 計算方法] タブの [ブック オプション] で、[表示桁数で計算] チェック ボックスをオンにする] をクリックします。
  3. [OK] をクリックします。
Excel 2007
  1. Microsoft Office ボタン) をクリックし、Excel オプション、し、[詳細設定] カテゴリ をクリックします。
  2. このブックを計算するとき] セクションで、表示精度の設定] チェック ボックスをオンにするブックを選択し、[OK] をクリックします。
表示桁数で計算] オプションを使用すると、特定の数値形式を使用して、数値の書式を設定する必要があります。

セルに、特定の数値の精度の書式を設定するのには、次の手順を実行します。
  1. 書式を設定するセルをマウスの右ボタンでクリックし、[セルの書式設定] をクリックします。
  2. 表示形式] タブの [カテゴリ] の [番号] をクリックします。
  3. [小数点以下の桁数] ボックスで、必要な精度 (小数点以下の桁数) を選択します。
  4. [OK] をクリックします。
Excel 2010
  1. [ファイル] タブをクリックし、Excel オプション、し、[詳細設定] カテゴリ をクリックします。
  2. このブックを計算するとき] セクションで、表示精度の設定] チェック ボックスをオンにするブックを選択し、[OK] をクリックします。
表示桁数で計算] オプションを使用すると、特定の数値形式を使用して、数値の書式を設定する必要があります。

セルに、特定の数値の精度の書式を設定するのには、次の手順を実行します。
  1. 書式を設定するセルをマウスの右ボタンでクリックし、[セルの書式設定] をクリックします。
  2. 表示形式] タブの [カテゴリ] の [番号] をクリックします。
  3. [小数点以下の桁数] ボックスで、必要な精度 (小数点以下の桁数) を選択します。
  4. [OK] をクリックします。

詳細

IEEE 754 標準の浮動小数点数、操作が容易なコンパクトな方法で格納する方法です。この標準は、Intel コプロセッサおよび浮動小数点数値演算の実装、ほとんどの PC ベース プログラムで使用されます。

IEEE 754 番号ストレージ要件を削減し、比較的高速な方法でデータを処理するすべてのマイクロプロセッサで使用可能な組み込みのバイナリの算術命令を許可するのにはバイナリ形式で保存するように指定します。ただし、一部の数値は、完全な精度で保存できない可能性が、2 進数の繰り返しにある繰り返しなしの 10 進数を変換する単純なです。

たとえば、番号 1/10 10 進番号システムを単純な 10 進数で表すことができます。
.1
ただし、バイナリ形式で同じ数、10 進数の繰り返しのバイナリ次のようになります。
.0001100011000111000111 (と)
この番号は、限られた量の領域に表示することはできません。 したがって、この番号によって約切り捨てられた - 2.78E - 17 が格納されている場合。

指定された結果を取得するのには複数の算術演算が実行される場合は、これらの丸め誤差が累積的な可能性があります。

関連情報

関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください:
78113浮動小数点演算不正確な結果を得ることがあります。

Excel 2007 および Excel 2010

計算の精度を変更するには、ツールバーの [Microsoft Office Excel ヘルプ] をクリックする方法の詳細については、Excel のヘルプ で、いつ、どのように数式を計算する変更 を入力し、トピックを表示するには [検索] をクリックします。

Excel 2002 および Excel 2003

計算の精度の変更の詳細については、ヘルプ] メニューの [Microsoft Excel ヘルプ] をクリックして、Office アシスタントまたはアンサー ウィザードで いつ、どのように数式を計算する変更 を入力し、トピックを表示するには [検索] をクリックします。

Excel 2000

計算の精度の変更の詳細については、ヘルプ] メニューの [Microsoft Excel ヘルプ] をクリックして、Office アシスタントまたはアンサー ウィザードで Excel の数式の計算方法の変更 を入力し、トピックを表示するには [検索] をクリックします。

プロパティ

文書番号: 214118 - 最終更新日: 2010年5月13日 - リビジョン: 8.0
この資料は以下の製品について記述したものです。
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Office Excel 2003
  • Microsoft Office Excel 2007
  • Microsoft Excel 2010
キーワード:?
kbprb kbmt KB214118 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:214118
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com