[[20060420203258]] 『入力値に誤差発生?!』(庸) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『入力値に誤差発生?!』(庸)

 妙な現象に出くわしました。

 新規ブックにおいて、任意のセルに手入力で「43797.348」と数値を入力。
 すると、勝手に「43797.347999999」に変換されてしまうのです。
 もちろん、表示桁数が小さければ「43797.348」と表示はされます。

 周辺数値で試してみたところ
 43797.347や43797.349は普通に入力できましたが
 たとえば、64100.348も9が並びました。

 もちろん、こんなばかな設定がオートコレクトに登録されているわけもなく…

 これはいったい何が起きているのでしょうか。
 対処方法はありますか?
 土地の座標値入力なので、どうしても正確にいれたいのです。 (庸@2003/NT)


 こんばんわ〜

 小数点以下の数値は演算誤差の可能性があります。
 こちらは参考になりませんでしょうか?
http://pc21.nikkeibp.co.jp/special/gosa/

 (キリキ)(〃⌒o⌒)b

 ども、こんばんは。
 このサイトで繰り返し貼られる記事ですね^^

 それがですねえ、999…が小数点以下10桁目で止まって
 11桁目からは、また0に戻るんですよ。
 演算誤差ってそんな形で現れることもアリですか?(庸)


 >それがですねえ、999…が小数点以下10桁目で止まって
 >11桁目からは、また0に戻るんですよ。
 数値の数が全部で「15」個だから、たまたま10桁目で止まるだけかな??
 試しに「9000.05085」を入力すると
 9000.05084999999ってなります。

 上記サイトの
 第3回 いろいろな誤差対策
 ◆ROUND 関数や ROUNDDOWN 関数は計算を間違えることがある
 も参考になりますよ〜♪

 (キリキ)(〃⌒o⌒)b

 そっか、たまたまなのかぁ。
 へんな形で出てきたもので、演算誤差とは違うナニカなのかとかんぐっちゃいました。
 今回は桁数指定のTEXT関数で逃げることにしました(第2回に出てくる手法ですね)。
 第3回のぶんは、実務でちょいちょい使っています^^
 第4回のぶんは・・・読んでもわかりませんでした(泣)  (庸)


 参考資料です。 (Hatch)
[XL2003] 小数を使用した計算の誤差について
http://support.microsoft.com/kb/813530/JA
[XL97]特定の小数部を持つ数値を入力した場合に誤差を生じる
http://support.microsoft.com/kb/161234/JA/


 Hatchさん、ありがとうございます。
 まさしく、この2番目です。

 やー、なにが一番焦ったとかというと
 演算誤差とか浮動小数点って、
 内部でそのように数値が保持されているのは、そういう造りなんだからと納得していても
 数式バーでまで、そのまんま表示されることもあるとは思ってなかったんですね。
 またひとつ覚えました。ありがとうございます^^(庸)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.