- ベストアンサー
Excelで33361.473が表示されない
Office2003proを使用しています。 Excelを起動して、どこのセルでもいいので 33361.473 という数値を入力すると、セルにはそのままの数字が表示されるのですが、関数バーには 33361.4729999999 と表示されてしまいます。 複数台のPCで試しても同様の表示になるのですが、これはexcelの仕様なのでしょうか。 いろいろ調べていたら、浮動小数点というものがあるらしいのですが、今回の原因について、お分かりでしたらご教示下さい。 よろしくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>2進法で完全に表示できるはずの整数部分が小数点以下の部分にも影響を与えているということなのでしょうか 33361.473 という数値の場合 「33361」の整数と「473」の小数として計算している訳ではありません 「33361473」の有効数字+指数として計算しているので、どの桁の数値でも影響は有ります
その他の回答 (4)
- KURUMITO
- ベストアンサー率42% (1835/4283)
詳しくは以下を参考にしてください。 http://pc21.nikkeibp.co.jp/special/gosa
- maron--5
- ベストアンサー率36% (321/877)
◆“達人”芳坂和行氏に学ぶ、エクセル(Excel)「演算誤差」対策講座 第1回 小数計算で発生する「誤差」 ―― 単純な計算の答えが合わない理由 http://pc.nikkeibp.co.jp/pc21/special/gosa/eg1.shtml
- FEX2053
- ベストアンサー率37% (7991/21371)
Excelは非常に「計算が苦手な」ソフトです。 この手の問題の詳細はこちらで。 http://pc.nikkeibp.co.jp/pc21/special/gosa/eg1.shtml 防ぐには、1000倍して整数で計算を終え、表示時点で小数に戻す しかありません。
お礼
ご回答ありがとうございます。 参考URLは確認済なのですが、疑問点があります。 33361.473はexcelでは33361+0.4729999999という形で「表示」される(処理はまた別かと思います)のですが、 33360.473は33360+0.4729999999とは表示されない点です。 これも、やはり裏側での整数部分の処理が少数部分にも影響を与えているのでしょうか。
- KURUMITO
- ベストアンサー率42% (1835/4283)
浮動小数点誤差と言われるもので、パソコンでの計算はすべてが2進法が基本となっていることによるもので、エクセルの仕様と云えばそれまでのことです。
お礼
ご回答ありがとうございます。 やはり浮動小数点の問題なのですね。 不思議なのが、33361.473ではなく1.473や61.473や333361.473というように、小数点以下は変更せずに整数部分のみ変えた数値を入力すると、関数バーにも入力した値のままで表示されることです。 2進法で完全に表示できるはずの整数部分が小数点以下の部分にも影響を与えているということなのでしょうか。
お礼
>「33361473」の有効数字+指数として計算している まさにこのような回答を求めていました! 有効数字や指数については、全く理解できておりませんが、整数+小数ではないということが分かったのでスッキリしました。 ありがとうございます。