[[20101002141611]] 『エクセルの小数点以下の扱いはどうなってるんです』(まゆ) ページの最後に飛ぶ

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

 

『エクセルの小数点以下の扱いはどうなってるんですか?』(まゆ)

 エクセルで計算式をたとえば

    930*(98+5/60) と入れた時、答えは91217.499 ですが
    91217.5と表示されます。
  
    表示形式は標準です。

 エクセルでは、小数点以下2桁目を四捨五入とか独自のルールがあるのでしょうか? 


 >930*(98+5/60) と入れた時、答えは91217.499 ですが

 930*(98+5/60)
 =930*(5880/60 + 5/60)
 =930*(5880+5)/60
 =930*5885/60
 =5473050/60
 =91217.5

 ですから、答は 91217.5 です。エクセルに何の問題もありません。

 (電卓男)


算数の時間に

 ()の中から計算する
 ×、÷を先に計算すると習いました。

  5/60=0.08333・・
  98+0.08333・・=98.08333・・
  930*98.08333・・=91217.499

 ではないのですか??

 (まゆ)

  


 5/60 は、0.8333・・・ で、3がず〜っと続く小数(循環小数)です。
 それを電卓のケタで切り捨てるので930を掛けても、正しい答 9127.5に
 ならないのです。

 例えば、電卓で 1÷3×3 としてみたらどうなります?
 1 が正しい答えのはずですが、そうならないでしょう?
 ご質問の内容もそういうことです。
 
(純丸)(o^-')b

ますます混乱してきました!!

 では、エクセルは循環小数にならないように、
 掛け算を先にしているということですか??
 計算の順番は常に割り算が最後なのですか??

 頭の悪い生徒ですいません。

 (まゆ)

 >では、エクセルは循環小数にならないように、
 >掛け算を先にしているということですか??
 >計算の順番は常に割り算が最後なのですか?
 930*(98+5/60) この計算、分割して計算しても答えは、91217.5ですよ!!

 新規ブックにて行ってください。

 セルA1に 930 という数値を入力してください。
 セルB1に =98+5/60 という数式を入力してください
 セルC1に =a1*b1 という数式を入力してください
 セルB1には、98.08333333 と表示されていますか?
 実際には、98.0833333333333ここまで値が入っています。
 このセルB1の値とセルA1の値を乗じた値は、
 なるほど 91217.499999999999・・・ なんですが、
 Excelの計算領域にも限界があります。
 よって、内部で最後の桁を丸める処理をしています。

 結果、繰り上がりとなり、
 91217.5 という結果を計算し、表示しています。

 よって、91217.5は正解ですよ

 但し、小数の計算は、要注意です。PCの世界は二進数ですから、
 小数計算に関しては、思わぬ計算誤差が発生する場合があります。
 因みに
 =(1-0.5-0.4-0.1)  0になりません。

 まあ、これはもう少しPCに慣れてから、検証してもよいです。

 >頭の悪い生徒ですいません。
 そんなことはありませんよ、自分の考え方をきちんと例を出して、順序だてて
 説明されています。

 ichinose

 


ありがとうございました!

 やっと納得できました。

 2進数ですか・・。前途は多難です。

 こんな質問に付き合ってくださいました皆様、ありがとうございました。


コメント返信:

[ 一覧(最新更新順) ]


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