[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『小数点第3位を切り捨てする方法』(Yuka)
例えば、 A B C D 1 249200 60 0.6
このD1に計算式 A1÷B1×C1 をいれ計算させると結果は
2492となります。(本当は 2491.999・・・・となるはず)
このD1の値を2491.99と表示させるにはどのようにすればいいのか教えてください。
単純に、セルの書式設定で小数点以下の桁数を2に設定しても2492.00となるだけですし
=ROUNDDOWN(A1/B1*C1,2)と関数を使っても2492.00となり、繰上げ表示になってしまいます。 計算結果が2491.99となる計算式をどなたか教えてください。
Excel2000
win XP
2492.00であっているのでは? 249200/60*0.6 = 249200*(1/60*0.6) = 249200*0.01 = 2492 あえてそのようにする必要があるのなら、計算上の有効桁数を 小数点以下2桁、と規定して、下記のようにするとか。 =ROUNDDOWN(ROUNDDOWN((A1/B1),2)*C1,2) (みやほりん)(-_∂)b
みやほりん さんの方法でやってみます。 ありがとうございました。
=ROUNDDOWN(ROUNDDOWN((A1/B1),2)*C1,2)が「正しい計算をしている」 とは言い切れませんので御注意を。 電卓は有効桁数があるので、途中で結果計算が行われると そのようになるかもしれません。有効桁数15桁の計算機だと、 249200/60 =4153.33333333333 4153.333333333333*0.6 = 2491.9999999999998 と計算されますが、計算の順番を変えると、 249200*0.6 = 149520 149520/60 = 2492 という結果が返ります。 算数上はこちらが正しい計算です。 電卓と同じ結果がほしいなら、計算過程とそのときの有効桁数を 電卓に合わせた計算を行わなければなりませんが、それが正しいとは 限りません。 A1÷B1×C1 が計算ルールなら、上記例では計算論理的には2492が 正しい結果です。 (みやほりん)(-_∂)b
少数演算誤差ではなく数学的な問題ですよね。 http://ja.wikipedia.org/wiki/0.999... ここを見ると理解できると思います。 (momo)
いい勉強になりました。 ありがとうございました。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.