Excel数値の有効桁数は15桁
この記事では、Microsoft Excelで数値計算を行う場合の有効桁数について説明します。
結論から書いてしまうと、
「Excelの有効桁数は15桁なので、それよりも細かい精度の計算はできない」
ということです。
有効桁数が15桁とはどういうことか
有効桁数が15桁というのはどういうことかというと、
16桁以上の数値を入力しても、16桁目より後の桁の数値を無視してしまうということです。
16桁目以降の数値が無視される例を見てみましょう。
A列に記載した数式を、C列の同じ行のセルに入力しました。
たとえば、C2セルには「12345678901234567890」と入力したのですが、
数値として処理された結果、16桁目以降が無視され「12345678901234500000」と表示されています。
また、C3セルには「=C2+1」と入力して、C2セルに1を足した値を計算しましたが、
加算された1が元の数値の20桁目に該当しますので、元の値と同じ数値が表示されています。
C4セルで、C2セルとC3セルを「=」で比較していますが、1を足したはずなのに同じ数値と判定されています。
16桁目以降の数値はどのように処理されるのか
上の例では、16桁目以降の数値「67890」が「00000」に変換されています。
つまり、後ろ5桁分が切り捨てられていることになります。
単純に16桁以上の数値を入力したときは、16桁目以降が切り捨てられることになるのですが、
計算の過程で桁数が15桁を超えた場合は挙動が異なり、16桁目の数値が四捨五入されることになります。
C2セルに「1.2345678901234500000」と入力しました。
その上で、C3セルでは10を、C4セルでは100を、それぞれ足した計算を行なっています。
0になる前の最後の桁の数値に着目すると、10を足したC3セルでは加算後に16桁目となった「5」が切り上げられ、
100を足したC4セルでは16桁目となった「4」が切り捨てられています。
このように、Excel上で計算した結果16桁を超えるような場合には、16桁目が四捨五入されることになるのです。
おわりに
Excelでの数値計算を行う際、有効桁数の影響で正確な結果が得られないケースがあります。
上で解説したような仕組みをおさえていないと、なかなか原因特定が難しいこともあるので、ぜひ覚えておいてください。