2009年06月19日

四捨五入?(0.50と0.51で切り上げ、切捨て)

職場で
「0.50は0に、0.51は1にする関数は?」
と聞かれました。

round関数っぽいですが四捨五入ではないですし。。

悩んだ結果、「0.49を足して小数点以下を切り捨てる」という手法を取る事にしました。

そうすると
8.50+0.49=8.99 → 8
8.51+0.49=9.00 → 9
(結果は整数表示)

と求める結果が得られました。

式でいうと

=INT(参照するセル+0.49)

という感じです。


しかしこの場合、少数第3位の扱いがどうなっているのかというと
8.509+0.490=8.999 → 8
8.510+0.490=9.000 → 9
となります。

0.51切り上げ、0.50切捨てと言われたのですが、先程の式ですと0.50〜0.51の間は切捨てになっていて実際は
「0.51以上切り上げ、0.50未満切捨て」
という表現が正しかったかと思います。


ただし依頼者からは
「少数第3位は使わないのでintを用いた式で十分だった」
という回答がありました。


今回は少数第3位が関係なく、小数点以下を切り上げ、切捨て、すればよかったのでこの手法で大丈夫でしたが、対象となる桁が今回のケースと異なる場合などはroundup、rounddown関数の使用や、0.01を足してround関数を用いる、などの対応も必要になってくるかもしれません。
posted by ショートカットキー at 03:57| EXCEL(エクセル)