ブック

ブックコラム

パソコンも計算間違い 0.1+0.1+0.1=0.3じゃない!? 『文系プログラマーのためのPythonで学び直す高校数学』から

2019/9/12

「コンピューターの計算に間違いはない!」と信じている人は多いのでは? 今や当たり前のように身の回りの機器に組み込まれるようになったコンピューターですが、実は“苦手”とする計算があるのです。今回は谷尻かおり『文系プログラマーのためのPythonで学び直す高校数学』(日経BP)から、担当編集者が選んだ“ちょっと面白いコンピューターの計算間違いの話”をご紹介します。

◇   ◇   ◇

ちなみにPythonは「パイソン」と読みます。いわゆるプログラミング言語の一つです。「プログラミング」と聞くと難しそうに思えるかもしれませんが、この記事ではほとんど電卓と同じような使い方しかしていないので、あまり構えないで読んでくださいね。

もちろん、Pythonの実力はそれだけではありません。数値計算や数学的なデータ処理に強いプログラミング言語なので、人工知能(AI)や機械学習、データサイエンスといった、今注目のコンピューターサイエンスの領域で最も活躍しているプログラミング言語でもあります。ビジネスパーソンにも「仕事のデータ処理のためにPythonを学ぼう」という人が増えているのです。

■コンピューターは“小数”の計算が苦手

最初は皆さんに計算していただきましょう。「0.1+0.1」はいくつですか?

そう、「0.2」ですね。では「0.1+0.1+0.1」は? そりゃ「0.3」です。

では、パソコンに同じ計算をしてもらいましょう。前述のプログラミング言語「Python」を使って、パソコンに直接計算式を入力します。

これが実際のPythonの画面。0.1の足し算をさせてみたところ…

あれ? 0.2はちゃんと出せてますが、「0.1+0.1+0.1」が明らかにおかしいですね。0.30000000000000004ですって? この後さらに0.1を加えていく計算をさせると、0.4から0.7まではちゃんと出せるものの、0.8のところで「0.7999999999999999」となった後は、0.9も1も結果がおかしいままになります。

ブック 新着記事

ALL CHANNEL