Home » Excel(エクセル)の関数・数式の使い方 » 最近のExcelでも「1.333+1.225-1.333-1.225」をカッコでくくれば演算誤差を確認できる

最近のExcelでも「1.333+1.225-1.333-1.225」をカッコでくくれば演算誤差を確認できる

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2401(ビルド17130.20000クイック実行)ベータチャネル

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」がセルに表示されます。

最終更新日時:2024-01-11 12:06

[スポンサードリンク]

Home » Excel(エクセル)の関数・数式の使い方 » 最近のExcelでも「1.333+1.225-1.333-1.225」をカッコでくくれば演算誤差を確認できる

「Excel(エクセル)の関数・数式の使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.