投資に役立つエクセル関数講座 その13 コンピューターの苦手な小数の計算
| コンピューターは小数の計算が苦手です。 |
| ExcelやWindowsに限った話ではなく、すべてのパソコン・コンピューターが該当します。 |
| |
| たとえば、10.6−9.7 などという簡単な計算すら正確にできない場合があります。 |
| 0.9に決まっているじゃないかというのは人間の考え方です(確かにその通りです)。 |
| |
| 少し実験してみましょう(事例はExcel2000を採用しています)。 |
| セルE1に1.3、次のセルに1.2を入れます。 |
| |
 |
| |
| そしてふたつの小数を選択して、下へ引き伸ばしてください。 |
| カレンダーを作るときと同じ要領です。 |
| 1.1、1.0、0.9……といった小数が自動で作成されたはずです。 |
| |
 |
| |
| ところが、0.7をよく見ると、0.699999……になっています。 |
| (ひょっとしたら、必ずしも、0.7で発生しないかもしれません) |
| |
 |
| |
| 見かけは0.7ですが、このまま複雑な計算を行うと、思いもよらない値を返してくることが予想されます。 |
| なぜ、このような現象が起こるのかというと、数値をメモリ内で扱う変数の型が原因です。 |
| この問題をパソコンの使用者が外部から修正することはできません。 |
| |
| 簡単な事例をだしてみましたが、計算中に小数が発生すると、この問題にぶつかることになります。 |
| そこで、誤差の生じない計算を行うため、何らかの便宜的な処理が必要です。 |
| 簡単な処理としては、いったん整数に戻してから、再度、小数に直してしまうという方法があります。 |
| |
| 10.6−9.7 → (10.6×10−9.7×10)÷10 としてしまうのです。 |
| 相対参照や絶対参照などで小数を扱う場合には、注意してください。 |
| |
| またExcelでは、小数第何位まで表示とか、四捨五入とか、書式設定のために正確な値を返しているように見える場合 |
| があります。事例では、Excelを取り上げていますが、他のアプリケーションで起こらないとはいえません。 |
| OSの区別なく、コンピューターに現在、ついてまわっている問題です。 |
| コンピューターが小数の計算を正確に行うことは、難しいのだと覚えておいてください。 |
| |
| |
| ※「タコヤン・システム」で、特に為替などの小数点を含む値を簡易マッピングするときは、整数に直すように触れています。 |
| 面倒でも、そのようにしてください。 |
| |
| |
| TOPへ戻る |
|
Copyright (C) toushikenbunroku.com, All Rights Reserved.
|