OpenOfficeで三捨四入、五捨六入

四捨五入とは誰が決めたのか知りませんが、OpenOfficeやエクセルで関数として存在するからには、世界で共通に用いられている常識的な数字の扱いに関する基準の概念なんですね。
しかし、常識ばかりで物事は進まず、時として三捨四入、五捨六入が必要になることもあるでしょう。
ここでは、その方法を紹介します。
使用する関数は、四捨五入と同じ、ROUND関数です。

関数名:ROUND関数
書式:=ROUND(処理対象の数値;処理対象のケタ)
何ができる:四捨五入された値を返す
平たく書くと:=ROUND(120.4;0)で120.4を小数点第一位で四捨五入した値、120が返されます。

三捨四入の場合

簡単に理解するなら、四捨五入よりもひとつ早く、上の位に上がれるようにしてあげたら良いのです。
そのために、処理対象の数値の、処理対象のケタの値に1を加えます。
先にあげた例の120.4を小数点第一位で三捨四入する場合、小数点第一位の値、4に1を加えます。
なので、=ROUND(120.4+0.1;0) これで、121が返されます。
もっと分かりやすく理解するなら、四捨五入を基準にして、ハンデを1つ与えるのが三捨四入と考えられます。
処理するケタ数ごとに整理してみると次のようになります。

  • 100の位で三捨四入:=ROUND(処理の値+100;-3)
  • 10の位で三捨四入:=ROUND(処理の値+10;-2)
  • 1の位で三捨四入:=ROUND(処理の値+1;-1)
  • 小数点第一位で三捨四入:=ROUND(処理の値+0.1;0)
  • 小数点第二位で三捨四入:=ROUND(処理の値+0.01;1)

二捨三入の場合は、2つ、ハンデを与えたら良いことになりますね。
例:1の位で二捨三入:=ROUND(処理の値+2;-1)

五捨六入の場合

これは、四捨五入よりも1つ遅く、上の位に上がれるようにするということです。
ということは、三捨四入と反対の処理をすればいいことになり、処理対象の数値の、処理対象のケタの値から1を引きます。
つまり、四捨五入を基準にしてハンデをひとつ減らしてしまえばいいことになります。
125を1の位で五捨六入する場合、=ROUND(125-1;-1)で120が返されます。
同様に
126を1の位で五捨六入する場合、=ROUND(126-1;-1)で130が返されます。

六捨七入の場合は、2つ、ハンデを減らしたら良いことになりますね。
例:1の位で六捨七入:=ROUND(処理の値-2;-1)
三捨四入、五捨六入のサンプルファイルは、calc060.odsをダウンロードしてください。

送信者 OpenOffice

参考:
OpenOfficeで四捨五入処理をする
Excelで五捨六入をしたいを参考にしました。

なお、小数点第一位で処理する場合のみ、もっと簡単な方法があります。
使用する関数は、INT関数です。
関数名:INT関数
書式:=INT(処理対象の数値)
何ができる:処理対象の数値を超えない最大の整数の値を返す
平たく書くと:=INT(120.4)で120を返す。
この関数を使って、120.4を処理する場合
二捨三入するときは、INT(120.4+0.7)で121が返される
三捨四入するときは、INT(120.4+0.6)で121が返される
四捨五入するときは、INT(120.4+0.5)で120が返される
五捨六入するときは、INT(120.4+0.4)で120が返される