プロが教える店舗&オフィスのセキュリティ対策術

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はどうしてでてくるのでしょうか?

ご存知の方いらっしゃいましたらよろしくお願いいたします。

A 回答 (3件)

十進数の小数を二進数に変換して計算するときによくある、「丸め


誤差」ですね。

(-81028.566)-(-80986.936)の時点で、-41.6300000000047000 に
なってしまいます。ここをそれぞれ1000倍してから引き算して1000
で割るように書き換えてやると、誤差のない-41.6300000000000000
になり、-65422.635を掛けると2723544.2950500000000000 が出てき
ます。引き算の後でroundしても大丈夫ですね。
    • good
    • 0
この回答へのお礼

おかげさまで解決しました。

マイクロソフトのサポートページの説明ではどうしたらいいかよくわからなかったので助かりました。

ご丁寧にありがとうございました。

お礼日時:2008/02/22 11:26

「Excel上で小数点を使用して計算すると、誤差を生じる場合がある」


ということだそうです。詳しくはリンク先を。
http://support.microsoft.com/kb/813530/ja
http://support.microsoft.com/kb/78113/ja
http://support.microsoft.com/kb/402554/ja

誤差が許されない計算を行う場合は、一度整数にして計算して戻すしかないようです。
    • good
    • 0
この回答へのお礼

整数にして計算しなおしたら誤差がなくなりました。
答えがどうしても合わずとても困っていたので助かりました。
回答ありがとうございました。

お礼日時:2008/02/22 11:35

(1),(2),(3)の実値は下3桁以上なのではないでしょうか?『セルの書式形式』の『表示形式』が『標準』だと、自動で四捨五入された値が表示されます。


そのため、見かけ上の計算値が異なっているんだと思います。
    • good
    • 0
この回答へのお礼

解決しました。
小数点がある計算はほんとに気をつけないといけないですよね…。

回答ありがとうございました。

お礼日時:2008/02/22 11:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!