Microsoft公式サイト内のページ「浮動小数点演算が Excel で不正確な結果をもたらす可能性がある」に、以下のような記述があることに気が付きました。
値が 0 に達した場合の例1. Excel 95 以前では、新しいブックに次のように入力します。
A1: =1.333+1.225-1.333-1.225
2. セル A1 を右クリックし、[セルの書式設定] をクリックします。 [数値] タブで、[分類] の下の [指数] をクリックします。 [小数点以下の桁数] を 15 に設定します。
0 を表示する代わりに、Excel 95 は -2.22044604925031E-16 を表示します。
ただし、Excel 97 では、この問題を修正しようとする最適化が導入されました。 加算または減算演算の結果、値が 0 または 0 に非常に近い場合、Excel 97 以降では、オペランドを 2 進数に変換した結果、または 2 進数から変換した結果として発生したエラーが補正されます。 上記の例を Excel 97 以降で実行すると、指数表記で 0 または 0.000000000000000E+00 が正しく表示されます。
元の英文は「Floating-point arithmetic may give inaccurate results in Excel」で確認できます。
算数的には「0」だけれど、コンピューター的には演算誤差のため「0」にならない浮動小数点数の計算
=1.333+1.225-1.333-1.225
が紹介されています。
カッコでくくった「=(1.333+1.225-1.333-1.225)」を入力すると
最近のExcelでは、たしかに
=1.333+1.225-1.333-1.225
を入力すると「0」になってしまいますが、
カッコでくくった
=(1.333+1.225-1.333-1.225)
ならば、演算誤差による結果「-2.22045E-16」が表示されます。
[セルの書式設定]ダイアログボックス-[表示形式]タブで「指数」を選択して「小数点以下の桁数」を「15」に設定すれば、
「-2.220446049250310E-16」がセルに表示されます。
- 「1.333」「1.225」「-1.333」「-1.225」をSUM関数で合計すると…
- WorksheetFunction.Sumで「1.333」「1.225」「-1.333」「-1.225」の入力されているセルを合計すると…
- Googleスプレッドシートなら「1.333」「1.225」「-1.333」「-1.225」の計算で誤差を確認できる
最終更新日時:2024-01-11 12:06
Home » Excel(エクセル)の関数・数式の使い方 » 最近のExcelでも「1.333+1.225-1.333-1.225」をカッコでくくれば演算誤差を確認できる