- ベストアンサー
EXCEL2003 小数点の計算式
Windows XP EXCEL2003 を使用しています。 (1)-81028.566 (2)-80986.936 (3)-65422.635 上のような数字が入力されていて、 ((1)-(2))×(3) の計算をしています。 EXCELで計算すると答えが 2723544.2950503 と表示されてしまいます。 (-81028.566 - (-80986.936) * -65422.635 ↓ (-81028.566 + 80986.936) * -65422.635 ( )の中を計算すると-41.63 -41.63 * -65422.635 = 2723544.29505 となると思うのですがこの03はどうしてでてくるのでしょうか? ご存知の方いらっしゃいましたらよろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
十進数の小数を二進数に変換して計算するときによくある、「丸め 誤差」ですね。 (-81028.566)-(-80986.936)の時点で、-41.6300000000047000 に なってしまいます。ここをそれぞれ1000倍してから引き算して1000 で割るように書き換えてやると、誤差のない-41.6300000000000000 になり、-65422.635を掛けると2723544.2950500000000000 が出てき ます。引き算の後でroundしても大丈夫ですね。
その他の回答 (2)
- bys07405
- ベストアンサー率38% (37/97)
「Excel上で小数点を使用して計算すると、誤差を生じる場合がある」 ということだそうです。詳しくはリンク先を。 http://support.microsoft.com/kb/813530/ja http://support.microsoft.com/kb/78113/ja http://support.microsoft.com/kb/402554/ja 誤差が許されない計算を行う場合は、一度整数にして計算して戻すしかないようです。
お礼
整数にして計算しなおしたら誤差がなくなりました。 答えがどうしても合わずとても困っていたので助かりました。 回答ありがとうございました。
- tama1978
- ベストアンサー率24% (57/237)
(1),(2),(3)の実値は下3桁以上なのではないでしょうか?『セルの書式形式』の『表示形式』が『標準』だと、自動で四捨五入された値が表示されます。 そのため、見かけ上の計算値が異なっているんだと思います。
お礼
解決しました。 小数点がある計算はほんとに気をつけないといけないですよね…。 回答ありがとうございました。
お礼
おかげさまで解決しました。 マイクロソフトのサポートページの説明ではどうしたらいいかよくわからなかったので助かりました。 ご丁寧にありがとうございました。