-PR-
解決済み

エクセル上の数値の意味

  • すぐに回答を!
  • 質問No.61335
  • 閲覧数2408
  • ありがとう数5
  • 気になる数0
  • 回答数7
  • コメント数0

お礼率 56% (146/257)

エクセル上の、 
 1.14774E-27
 2.54191E-46
の意味がわかりません。
ご存知のかた、教えてくださいます様宜しく御願いします。
通報する
  • 回答数7
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.7
レベル11

ベストアンサー率 31% (81/257)

返事遅れてしまいました。

「アルゴリズム」とは「計算方法」、かっこ付けて言うと、「算法」のことです。「計算ロジック」と言ってもいいでしょう。

そのエクセルのデータは、あなた自身、または、他の方の計算結果だと思うんです。そうでければ、そんな中途半端な数字にならないはずです。ですから、

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だろうが同じです。興味があれば試してください。

□プログラミングの教科書:
何を勉強したいのかで答えは全く異なってきます。
-PR-
-PR-

その他の回答 (全6件)

  • 回答No.2
レベル8

ベストアンサー率 39% (16/41)

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

お礼率 56% (146/257)

メッセージありがとうございます。
即答していただきありがとうございました。
数値を示してくださって有り難うございます。
投稿日時 - 2001-04-09 01:02:50

  • 回答No.1
レベル10

ベストアンサー率 17% (31/179)

E-27は10のマイナス27乗じゃなかったかな
E+27なら10の27乗になったはず。

1.14774×10の-27乗と
2.54191×10の-46乗の
すんごく小さい数値じゃないですかね。
お礼コメント
mickychan

お礼率 56% (146/257)

メッセージありがとうございます。
一番最初に即答していただきありがとうございました。
投稿日時 - 2001-04-09 01:04:32
  • 回答No.3
レベル10

ベストアンサー率 24% (29/117)

どのような状況でその数値が出てきたのかは分かりませんが、エクセル特有というよりは、数学的な話です。
たとえば、
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

お礼率 56% (146/257)

メッセージありがとうございます。
即答していただきありがとうございました。
大変助かりました。
投稿日時 - 2001-04-09 01:01:28
  • 回答No.4
レベル11

ベストアンサー率 31% (81/257)

ponntaさんの答えで正しいです。

おそらく何らかの計算をした結果でしょう。浮動小数点演算だと、

1)浮動小数点のBit数の制限から来る計算に伴う丸め誤差

2)反復計算などを途中で打ち切ることによって生ずる打ち切り誤差

が不可避的に付きまといます。

ですから、上の2つの数字は実際には=0と思ってください。Excelには「丸め」の機能がるので気になるなら消すことも出来ます。
補足コメント
mickychan

お礼率 56% (146/257)

メッセージありがとうございます。Excelの「丸め」の機能って何でしょうか?
投稿日時 - 2001-04-09 00:58:09
  • 回答No.5
レベル11

ベストアンサー率 31% (81/257)

「丸め」(=Round off)とは、少数点以下第何位まで採用するかということです。

よく間違えられますが、「四捨五入」だけでなく、「切り捨て」や「切り上げ」も「丸め」です。Excelでの具体的な「丸め」操作は最近使ってないので忘れましたが、触れば分かるはずです。

言葉足らずでしたが、「丸め誤差」と「打ち切り誤差」は全く別物で、後者は解析的に解けない問題を数値解析的反復解法や級数展開で求めようとした時、途中で「収束」と判断した段階で、処理を抜ける訳ですが、この時発生する誤差のことです。「許容誤差=ε」によって、本来=0になるべきなのに「2.54191E-46 」のような中途半端に小さい数値が残るのが普通です。今回の問題もおそらく、そんな計算結果ではないのでしょうか?

もし、そうでないとするなら、アルゴリズムの間違いかもしれません。
補足コメント
mickychan

お礼率 56% (146/257)

メッセージありがとうございます。アルゴリズムと言うことばは、プログラミング用語ですか?
プログラミングの本で、良い本ありますか?
投稿日時 - 2001-04-10 23:33:38
  • 回答No.6
レベル11

ベストアンサー率 31% (81/257)

すいません。訂正します。

数値の異常な小ささから考えて、「丸め誤差」の可能性の方が大きいです。

たとえば、連立一次方程式をガウスジョルダン法で解くと、本来=0になるはずなのに、「丸め誤差」の影響によってこのような小さな値が残ることがあります。

同じ連立一次方程式の数値解法でもガウスザイデル法は反復法であり、その計算結果は「丸め誤差」と「打ち切り誤差」が重なっており、普通は後者の方が大きいです。
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ