[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『少数以下切捨てについて』(杉楊)
切捨ての事で教えて頂きたいです。
A B C D 17時間 10分 15,600円 267,800円
=ROUNDDOWN(A1*C1+(C1*(B1/60)),0)
答えDが267,799となると思うのですが267,800円となってしまいます。
少数切捨てで計算したいのです。
同じ式でも数値が違うと少数以下は切り捨ててくれる場合もあるために困っております。
ROUNDDOWNではだめなのでしょうか。
宜しくお願い致します。
WINDOWS XP SP-2 EXCEL2002
除算はできるだけ最後にするようにした方がいいです。 =ROUNDDOWN(A1*C1+(C1*B1/60),0) でも267,800で合ってませんか? (やっちん)
10分間を時給15,600円で計算すると、
2,599.999989円と私の電卓では計算しています。(相手方でも同じでした)
少数は切捨てという決まりがあるためにこのような事になってしまい困っております。
(杉楊)
普通に考えて10分は1時間の6分の1で 156000は6で割り切れますよ。 10/60を先に計算する必要があるのでしょうか? どうしてもそれで計算したいというのであれば 最低の単位が10分という前提で10分単位の単価を用意すればいいのではないでしょうか。 必ず誤差が出てきますが。 (やっちん)
ご参考まで(あきお) http://pc21.nikkeibp.co.jp/special/gosa/eg3.shtml
ぶつかった… 1÷3×3を電卓で計算してみてください。 1÷3は0.33333…の3倍ですから0.99999…となると思います。 しかし、本当は(数学的には)これは1に戻るはずですよね? 杉楊さんの電卓計算もこれと同じことが起きているのです。 つまり電卓の機能の限界なのですね。 電卓計算が間違っているだけだ!と、お相手方にも納得してもらえるとよいのですが。(庸)
電卓の保持桁数にもよりますが、 手元の12桁対応電卓で 10÷60=0.16666666666 これに対しエクセルでは 0.166666666666667 この時点でもう計算は厳密な意味で合わなくなります。 電卓での計算にあわすのが目的なら、数式の中で扱う小数の有効桁数を 電卓側にあわすべきでしょう。 =A1*C1+ROUNDDOWN((C1*ROUNDDOWN(B1/60,11)),0) (みやほりん)(-_∂)b
先ほどクライアント側から変更されたシートが送られてきました。
=ROUNDDOWN(C1*(A1+ROUNDDOWN(B1/60,10)),0)
この(B1/60,10)にある,10の意味は10桁ということなのですね。
でもみやほりんさんの式に書き換えてしまおう・・・
しかし通常このような計算は皆さんどのように処理しておられるのでしょうか?
いちいち相手方の電卓に合わせる訳にもいきませんし。(杉楊)
相手方の電卓の基本操作が間違っていますねw 数学上、A÷B×C=A×C÷B ですが、電卓上ではイコールになりません 1÷3×3=1 ですが、電卓でやると 0.9999… 1×3÷3 でやらなければ正しい解がでません 計算式が A÷B×C であっても A×C÷B でやるのが基本です(Alica)
私はある料金の計算プログラムの検算をエクセルシートで行っていますが 端数処理に誤差がでないよう、除算は最後に持ってきています。 (やっちん)
このような報酬のような計算をする場合は、 単なる数学とは違いますのでどういう方法がよいとは一概には言えないと思います。
時間単価が15,600円ですから、1分単価は260円、 したがって10分なら2,600円ですよ、というのもそれはそれで正しいでしょう。
しかし、1時間未満の端数が出た場合は、(端数の分÷60)時間(小数点第○位まで)を 時間単価に掛けて計算しましょうというのも間違いではないでしょう。
要は相手方と契約をするときに、1時間未満の端数はどのように取り扱うか、 お互いの合意に基づいて決めておけばいいだけの話だと思いますよ。 (sato)
確かにそうですね。 でも、給与計算で減る方になるのは問題になりそうな気もします。 これは本題からそれてしまいますね。失礼しました。 (やっちん)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.