いきなりで恐縮だが、お手元のパソコンでExcelを立ち上げて、次のようにして「1-0.1×10」を計算してほしい。

 A1のセルに「1」を入力、次にA2のセルに「=A1-0.1」を入力する。そのA2のセルをアクティブにして「Ctrl」キーと「C」キーを押してその内容をコピーし、その下のA3~A11までのセルを指定してA2の内容を貼り付ける。

 以上の結果として、A2~A11には、A1に入力された1から0.1を順番に10回引いた値が表示されるはずだ。実際にやってみると、図1のようになる。

図1●A1に入力した「1」から、A2~A11にかけて0.1ずつ引いた計算の結果
図1●A1に入力した「1」から、A2~A11にかけて0.1ずつ引いた計算の結果

 ご覧のように、A2からA10までは、0.9~0.1というように正しい値が表示されている。しかし、A11には、本来であれば「1-0.1×10」の答えである「0」が表示されるべきなのに、「1.39E-16」(1.39かける10のマイナス16乗)という値になっている。

 「1.39E-16」だとちょっと分かりにくいので、表示形式を変えてみよう。A列のセルの幅を広げてから「セルの書式設定」で小数点以下20桁まで表示するようにしてみると、「0.00000000000000013878」という値になっていることが分かる(図2)。

図2●小数点以下20桁まで表示させてみると「0.00000000000000013878」という値になる
図2●小数点以下20桁まで表示させてみると「0.00000000000000013878」という値になる

 なんと、仕事での予算・売上管理から私的には住宅ローンの計算まで大活躍しているExcelなのに、「1-0.1×10」という簡単な計算すら正しく処理できないのか、と驚かれたことだろう(正しく計算ができない理由をご存じの方は、驚いたふりをしてほしい)。

 なんてバカなんだとExcelを責めるのはちょっと待ってほしい。ほかのアプリは正しく計算できるのか。試しに、手元のWindowsパソコンに入っていたPythonでも実行してみよう。これは、人工知能のプログラムをちょっと試してみようかなという出来心でパソコンに入れたものだ。

 「1-0.1*X(Xは1~10)」を実行してみると、図3のようになる。

図3●Pythonで「1-0.1*X(Xは1~10)」を実行した結果
図3●Pythonで「1-0.1*X(Xは1~10)」を実行した結果