• ベストアンサー

エクセル上の数値の意味

エクセル上の、   1.14774E-27  2.54191E-46 の意味がわかりません。 ご存知のかた、教えてくださいます様宜しく御願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ametsuchi
  • ベストアンサー率31% (81/257)
回答No.7

返事遅れてしまいました。 「アルゴリズム」とは「計算方法」、かっこ付けて言うと、「算法」のことです。「計算ロジック」と言ってもいいでしょう。 そのエクセルのデータは、あなた自身、または、他の方の計算結果だと思うんです。そうでければ、そんな中途半端な数字にならないはずです。ですから、 1)その計算方法自体に誤りがある。 2)計算方法自体は正しいのだが、計算の過程で丸め誤差と思われる誤差がやむを得ずに生じて、「2.54191E-46」のような数字が残った。本来は=0になるはずである。(「丸め誤差」だけではなく、「打ち切り誤差」もあるかもしれない) の何れが原因な訳ですよね?私は2)が原因ではないかと想像したのですが、もしそうでないとするなら、1)しかないという理屈です。 -------------------------------- 尚、蛇足ながら、丸め誤差が生ずる一番簡単な例を挙げておきます。 a = 1.0/3.0 * 3.0 - 1.0..............Equ1) なる計算を考えましょう。数学的には「a=0.0」になるはずです。しかし、計算機上では、「1.0/3.0」が正確に1/3にならないので、この計算をしても「a=0.0」になるとは限らないのです。勿論、「最適化」が働いたりして、計算の順序が変われば、厳密に「a=0.0」になるかも知れないですが、途中で変数に代入すると、式どおりの計算順序になります。これは、Excelだろうが、C++だろうが、Fortranだろうが同じです。興味があれば試してください。 □プログラミングの教科書: 何を勉強したいのかで答えは全く異なってきます。

その他の回答 (6)

  • ametsuchi
  • ベストアンサー率31% (81/257)
回答No.6

すいません。訂正します。 数値の異常な小ささから考えて、「丸め誤差」の可能性の方が大きいです。 たとえば、連立一次方程式をガウスジョルダン法で解くと、本来=0になるはずなのに、「丸め誤差」の影響によってこのような小さな値が残ることがあります。 同じ連立一次方程式の数値解法でもガウスザイデル法は反復法であり、その計算結果は「丸め誤差」と「打ち切り誤差」が重なっており、普通は後者の方が大きいです。

  • ametsuchi
  • ベストアンサー率31% (81/257)
回答No.5

「丸め」(=Round off)とは、少数点以下第何位まで採用するかということです。 よく間違えられますが、「四捨五入」だけでなく、「切り捨て」や「切り上げ」も「丸め」です。Excelでの具体的な「丸め」操作は最近使ってないので忘れましたが、触れば分かるはずです。 言葉足らずでしたが、「丸め誤差」と「打ち切り誤差」は全く別物で、後者は解析的に解けない問題を数値解析的反復解法や級数展開で求めようとした時、途中で「収束」と判断した段階で、処理を抜ける訳ですが、この時発生する誤差のことです。「許容誤差=ε」によって、本来=0になるべきなのに「2.54191E-46 」のような中途半端に小さい数値が残るのが普通です。今回の問題もおそらく、そんな計算結果ではないのでしょうか? もし、そうでないとするなら、アルゴリズムの間違いかもしれません。

mickychan
質問者

補足

メッセージありがとうございます。アルゴリズムと言うことばは、プログラミング用語ですか? プログラミングの本で、良い本ありますか?

  • ametsuchi
  • ベストアンサー率31% (81/257)
回答No.4

ponntaさんの答えで正しいです。 おそらく何らかの計算をした結果でしょう。浮動小数点演算だと、 1)浮動小数点のBit数の制限から来る計算に伴う丸め誤差 2)反復計算などを途中で打ち切ることによって生ずる打ち切り誤差 が不可避的に付きまといます。 ですから、上の2つの数字は実際には=0と思ってください。Excelには「丸め」の機能がるので気になるなら消すことも出来ます。

mickychan
質問者

補足

メッセージありがとうございます。Excelの「丸め」の機能って何でしょうか?

  • takesama
  • ベストアンサー率24% (29/117)
回答No.3

どのような状況でその数値が出てきたのかは分かりませんが、エクセル特有というよりは、数学的な話です。 たとえば、 1.01E-01→1.01/10 1.01E-02→1.01/100 というような数値が分かりやすいでしょうか。 つまり、指数を表すもので、 1.14774E-27 →1.14774/10^27(10の27乗) 2.54191E-46 →2.54191/10^46(10の46乗) となり、小数点以下を延々と表すよりは楽ですよね。 これくらいで、お分かりいただけたでしょうか?

mickychan
質問者

お礼

メッセージありがとうございます。 即答していただきありがとうございました。 大変助かりました。

  • o-totoro
  • ベストアンサー率39% (16/41)
回答No.2

エクセルのどんな数字かわかりませんけど、普通アルファベットのE*は10の*乗を表します。したがってご質問の1.14774E-27は[1.14774×10の-27乗]つまり、0.00000000000000000000000000114774(あってるかな?)のことになります。

mickychan
質問者

お礼

メッセージありがとうございます。 即答していただきありがとうございました。 数値を示してくださって有り難うございます。

  • ponnta
  • ベストアンサー率17% (31/179)
回答No.1

E-27は10のマイナス27乗じゃなかったかな E+27なら10の27乗になったはず。 1.14774×10の-27乗と 2.54191×10の-46乗の すんごく小さい数値じゃないですかね。

mickychan
質問者

お礼

メッセージありがとうございます。 一番最初に即答していただきありがとうございました。

関連するQ&A