[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『エクセルの小数点以下の扱いはどうなってるんですか?』(まゆ)
エクセルで計算式をたとえば
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.