- ベストアンサー
長い数値を入力すると「1.23457E+17」と表示されてしまうのは?
長い数値で例えば「123456789123456789」を入力すると「1.23457E+17」とセル内には表示され、データとしては「123456789123456000」となり、入力したものとあきらかに異なっています。 これはどういうことなのでしょうか? また、正しく「123456789123456789」と表示させるにはどうしたらいいのでしょうか? よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#2です。 「ただ、10のXX乗は別の箱に入っているので...... について、ご参考になるかわかりませんが書きます。 あなたは、対数をご存じですか ? その考え方を思い出して下さい。 a)5桁の電卓で99,999以上の数字を入れようとしても入りませんよね。 b)0.0001以下の数字でも同じように0となってしまいますね。 限られた桁数で、出来るだけ広い範囲の数値を表すためには実際の数値(0.0001)を、有効桁数内で表現できるように位取りをして(1)、実際の数値を、その値と10の指数乗(10の-4乗)の積で保存しています。 この指数乗の部分を別の箱と書きました。 計算機では、「浮動小数点表示」などと呼ばれているハズ。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17070)
こんなの当たり前。 コンピュターの数には制限桁数が必ずあります。 >123456789123456789」と表示させる とりあえず文字列として表示。計算結果なら特別の処理をして、文字列としてあらわさないといけない。 それを使って計算する場合、上位桁とそれ以後を分けて、複雑な計算をする覚悟がいりますよ(多桁計算)。 数の指数表示ということも勉強してください。 1億桁の円周率が計算され表示(印刷)できる理屈を不思議に思いませんか。 奥が深い世界ですよ。
- agro
- ベストアンサー率63% (19/30)
ちなみに入力後にセルを右クリックして プルダウンメニューの中にあるセルの書式設定 を開いて表示形式の中の文字列を選んでも 元には戻らないのでお気を付けください。 当方環境Exele2000でしか確認していません。 悪しからずご了承ください。 例: 123456789123456789 を入力後 1.23457E+17 と表示された後 表示形式を文字列にしても 1.23457E+17 のままとなります。 (再度入力しないと元には戻りません)
お礼
XPで確認してみました。ほんとに元に戻らないんですね。(泣) ありがとうございました!
- 530529
- ベストアンサー率16% (86/521)
ほとんどの計算ソフトには有効桁数があります。 そのため、有効桁数以上になると箱に入らなくなります。 ただ、10のXX乗は別の箱に入っているので数字の位取りは(その範囲以内で)正しく表示されます。 もし計算に使わないのであれば、文字列としての表示をすればよいかと思います。
お礼
計算ソフトって、どんな数値も計算してくれるものだと思っていた私は甘かったです・・・ ついでで、もしよろしければ 「ただ、10のXX乗は別の箱に入っているので数字の位取りは(その範囲以内で)正しく表示されます。」の説明がいまいちピンとこないので、もう少し簡単に補足していただけると助かります。(理数系の頭でないので、理解できませんでした。すみません)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
エクセルで扱える数字の有効桁はおよそ15桁です。 それ以上は、数値としては正しく扱えません。 単に表示させるだけなら 「'」を前に付けて文字列として入力して表示します
お礼
15桁という制限があるとは知りませんでした。 恥ずかしい・・・ とても勉強になりました。 ありがとうございます!
お礼
確認が遅くなり申し訳ありません。 な、なるほど~!! 分かりやすいご説明ありがとうございました。 対数、、、はるかかなた昔に習ったような。。。(泣) 今回なにげなく入力した「123456789123456789」がここまでの話に発展するとは思いませんでした。(苦笑)