[[20080712130357]] 『ROUNDDOWNの計算結果が合わない???』(桐) ページの最後に飛ぶ

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

 

『ROUNDDOWNの計算結果が合わない???』(桐)

いつもお世話になっています。
ROUNDDOWNを使って計算させたのですが答えが合いません。

どうしてなのでしょうか?

申し訳ございませんが宜しく御願い致します。

   A	  B     C	
1  454500	  20.7  6,362
                  ↑=ROUNDDOWN((A1*(B1-20)/50),0)
                   計算結果は【6,363】になるはずなのですが・・・         

 詳しくは分からないですが、いわゆる小数誤差と呼ばれるものかと思います。

 B1-20は、「20.7-20」で、普通なら「0.7」になるだけですが、
 実際は、少し小さいようです。

 試みに =(B1-20)=0.7 と入力してみますと、Trueにはなりません。
 中間で一旦Roundをかませて、ピュアな「0.7」にする必要がありそうです。(※)

 (1) C1セル =ROUNDDOWN((A1*(B1-20)/50),0)
 (2) C2セル =(B1-20)=0.7
 (3) C3セル =ROUNDDOWN((A1*ROUND((B1-20),1)/50),0)

  行   __A___  ___B___  __C__  
   1   454500  20.700    6362  
   2                    FALSE  
   3                     6363  

 ※ 私ならまだ、小数になっていることに不安があり、10倍してピュアな「7」を取得してから計算します。
    いずれにしても、小数点が絡む計算で、大小を判定する時は、注意が必要です。

  (半平太)

 参考URLです。(xxx)

 ◆“達人”芳坂和行氏に学ぶ、エクセル(Excel)「演算誤差」対策講座
http://pc.nikkeibp.co.jp/pc21/special/gosa/


半平太 様
xxx 様

計算式が合っているからと言っても
少数点以下は気を付けないといけないんですね。

これからも宜しくお願い致します。
ありがとうございました。
(桐)


 ROUNDDOWNの少数誤差対策
=ROUNDDOWN(A13*(B13-20)/50+0.01,0)
             ^^^^^       ROUNDupは+0.01 が−0.01で
(sss)


コメント返信:

[ 一覧(最新更新順) ]


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