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

エクセルで =-0.8-22.1-16.4+39.3 の値は0になるのに=-22.1-16.4+39.3-0.8 の値が0とは表示されません。
どうしてなのか不思議でなりません。たまたま0チェックの中に1箇所だけ変な表示があったので気になっただけなので急いでいるわけではありませんが、、わかる方よろしくお願いします。ちなみにオフィスxpです。
 

A 回答 (4件)

確かにおかしいですね。


ちょっと調べてみました。で、分かったことですが、
-22.1-16.4+39.3 の段階で本来は"0.8"のはずが、内部的には "0.799999999999997"という値になっているみたいで、これが原因のようです。
なぜ、内部の値がこんな値になっているのかはわかりませんが。

※コンピュータが計算する場合、実際は2進数(0と1のみの世界)で計算しているので、そのために(特に小数の場合)誤差が出ているのかも知れませんね。
    • good
    • 0
この回答へのお礼

さっそくの回答ありがとうございます。自分の式にミスがあったわけではなさそうですね。回答文を読んで僕の力ではどうしようもない印象を受け、ホッとしています。他の方の意見も伺ってみたいで締め切るのは少し後にしようと思います。

お礼日時:2002/08/29 15:34

セルの書式を「標準」から「数値」にすると、どちらも「0」になりました。

#1hinebotさんの解答が出ていますが、これもご説明を出きればお願いします。
    • good
    • 0
この回答へのお礼

書式には特に不自由がないかぎり気にもしてなかったのですが、こんなところにも違いがでるなんて!僕にとってはすごい発見です。簡単な表計算でも気をつかうことがあるんですね。ありがとうございました。

お礼日時:2002/08/29 15:47

そのものズバリの質問を私が依然しているので、以下を参照してください。



参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=266370
    • good
    • 0
この回答へのお礼

とりあえず検索はしてみたのですが、、、BlueRayさんの質問を拝見しましたが、ぼくの質問と同じ内容だと指摘されても、そうなのかなぁーと。ちょっと僕にはついていけるレベルではないようです。いつか理解できるように勉強したいと思います。ありがとうございました。

お礼日時:2002/08/29 16:01

面白いですね。

この程度で2進数の丸め誤差が出るのは意外でした。セルの書式設定で表示形式の数値を選ぶと正しくゼロになりました。1/3に3をかけてちゃんと1となるのに。いくつかWebを調べてみたら、Excelは内部的に2進数で計算しているので(あたりまえですが)、2進数で循環小数になってしまうような値(例えば10進数の0.1)が入る式は要注意だそうです。この辺は、しっかりしたメーカ製の電卓のほうが対策をとっているでしょう。
    • good
    • 0
この回答へのお礼

2進数で循環小数になってしまうような値(0.1)が入る式というのは僕の質問の式にも入っていますね。ちょっと実験して遊んでみようと思います。どうもありがとうございました。

お礼日時:2002/08/29 16:11

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