最新閲覧日:

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

このQ&Aに関連する最新のQ&A

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

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

すいません。

訂正します。

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

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

同じ連立一次方程式の数値解法でもガウスザイデル法は反復法であり、その計算結果は「丸め誤差」と「打ち切り誤差」が重なっており、普通は後者の方が大きいです。
    • good
    • 0

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



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

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

もし、そうでないとするなら、アルゴリズムの間違いかもしれません。

この回答への補足

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

補足日時:2001/04/10 23:33
    • good
    • 0

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



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

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

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

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

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

この回答への補足

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

補足日時:2001/04/09 00:58
    • good
    • 0

どのような状況でその数値が出てきたのかは分かりませんが、エクセル特有というよりは、数学的な話です。


たとえば、
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乗)
となり、小数点以下を延々と表すよりは楽ですよね。
これくらいで、お分かりいただけたでしょうか?
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/04/09 01:01

エクセルのどんな数字かわかりませんけど、普通アルファベットのE*は10の*乗を表します。

したがってご質問の1.14774E-27は[1.14774×10の-27乗]つまり、0.00000000000000000000000000114774(あってるかな?)のことになります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/04/09 01:02

E-27は10のマイナス27乗じゃなかったかな


E+27なら10の27乗になったはず。

1.14774×10の-27乗と
2.54191×10の-46乗の
すんごく小さい数値じゃないですかね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/04/09 01:04

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報