No.014
負の小数値を合計したときに計算結果に誤差が生じる
2003/2007/2010/2013
合計を求める簡単な数式なのに、結果が合わないというお問い合わせをいただきました。その数式の特徴は、小数値の負の数を含みます。
例えば、次のようなケースです。表示形式は既定の標準です。
=11.12-11.15+0.03 または =(11.12-11.15)+0.03
結果は0と思いきや、セルには「-1.13798E-15」と表示されます。
この指数表示だとわかりにくいので、表示形式を[数値]に設定してみます。
するとセルの表示は「(0)」となります。やはり、マイナス値となっているようです。
そこで小数点の表示桁数を増やしてみます。
すると表示は「(0.00000000000000113797860)」となり、少数15桁のところから値が出てきました。
この現象は、小数値によっては発生しないケースもあります。
この件調べましたら、次のマイクロソフトさんのサイトで説明されていました。
先述の計算式では、先に計算される「11.12-11.15」で-0.03が格納されるときに生じる誤差ということのようなのです。
したがって、Excelの仕様と言ってよいこの現象を回避するには、端数処理の関数を使用して、計算結果を丸めてしまうというのが一番よい方法です。