EXCELの答えが違う。誤差がでる。

通常(整数)の計算では気づきにくいが、EXCELに限らず誤差がでます。

まず、右のEXCELシートをご覧ください。

単純に A列-B列=C列 としたものですが、
A列-B列=D列(小数点以下20桁まで表示)にした場合、
8,9,10行及び19行に答えの違いが現れます。

Excelに限らず、コンピュータすべてに言える事ですが、

Excelは結構上手にごまかしてるので、気が付かない場合がほとんどです。

コンピュータなのになぜ?

それはコンピュータの中はすべて二進数で処理されているので、小数点以下の数字は

ほとんどの数値が循環小数になり正確には表現されません。

その例えが、上記のEXCELシートです。

通常の計算ならA列-B列=C列の数値で表されるので、今まで全く気が付きませんでした。

2進数の処理では当たり前に発生する誤差ですので、細かな数値や大量の数値を四則演算する場合は、端数処理や数値型などに十分な注意が必要ですよ。

小数点以下15、16桁目が分岐点みたいですね。

タイトルとURLをコピーしました