見出し画像

1−0.9−0.1=?

 1-0.9-0.1を計算。簡単ですね。答えは0。なぜこんな簡単な計算取り上げるかと言えば、

 電卓アプリは表計算ソフトの中にはキッカリ0を返して来ないものがあります。

 例えばこういう答えを出すアプリがありました。


マイナス0

 マイナス0。これは故障やバクではありません。コンピュータが二進法を扱うための問題、平たくいえば《しかたない》。今はWikipediaというものがありますから簡単に分りますかや調べてみてください。

 種明かしすると、十進法を0.1を二進法にすると循環小数になってしまいます。循環小数とは、延々と同じ数字の組み合わせが終わりなく続いてしまう、つまりエンドレス。1÷3をすると小数点以下はエンドレスで3が続く。コンピュータには数字は無限に入りませんからどこかで手を打っている。計算するとこの誤差が見えてしまいます。

 では、市販されている電卓はなぜピッタリ0になるかといえば、内部は二進法でも十進法のように振る舞う仕掛けをしてあります。その他会計ソフトなどお金を扱う計算ではマイナス0は不都合ですからこの仕掛けをしてあります。

 MS-Excelも小数点計算では誤差が出るというのを頭に入れて、端数処理などを考えるといいでしょう。

この記事が気に入ったらサポートをしてみませんか?