マイナス(負の数)の四捨五入ってどうなるのか

システム
スポンサーリンク

仕事上で、ある2つのシステムで計算した結果を照合した所、元のデータが同じにも関わらず、結果が数円違っているということがありました。

 

システム関連の人間にとってはよくあることで、大抵それぞれのシステムの数字の丸め方(四捨五入、切り捨て)が違うという結論になるんですが、先日、マイナスの数字の四捨五入の仕方がそれぞれのシステムで違っているために問題が発生しました。

 

一方のシステムは、数字の絶対値をとってから、四捨五入してマイナスを付加する。

もう一方はプラスマイナスどちらにせよ、四捨五入しろ というプログラム(関数)に投げている。

 

マイナスの四捨五入ってなんだ?

 

ふと思って調べてみました。

 

スポンサーリンク

調べてみた・・・

 

通常四捨五入(小数第一位を四捨五入する場合)といえば、

 

「1.7」は「2」

「1.3」は「1」

 

となります。対象の位が5~9であれば切り上げ、0~4は切り下げです。

 

「切り上げる」というのは、数を大きくすると捉えれば、マイナスの四捨五入について

「-1.7」は一体どうなるのか。数字を大きくするのでは「-1」ではないか。

「-1.3」は「-2」ではないのか。

 

となると、文字通りの『四捨五入』ではなくなってしまう・・・。

そもそもマイナスの四捨五入なんてないのでは?? 混乱してきました。

調べてみると、jis z8401 という日本工業規格で規定されているようです。

詳細は日本工業標準調査会のこのページでJIS規格番号「Z8401」を検索して下さい。詳細な情報が参照できます。

 

これによると、負の数は絶対値として丸める(-1.5は-2へと丸められる)そうです。

これで、スッとしました。

この記事が気に入ったら
励ましの「いいね」を・・・
最新情報をお届けします。
システム日頃の疑問
スポンサーリンク
yaboonをフォローする
DigitalGate

コメント

  1. アルフのパパ より:

    JISを読みもせずに質問を投げかけて申し訳ありません。(JISに回答があるかもしれないのに、・・・)

    負の数の四捨五入は、前々からとても気になっていました。負の数は絶対値をとってから丸める。これで解決できればいいのですが、0をまたぐと、妙なことになりそうです。ここでは話を単純に小数点以下第1位までの数として進めていきます。(10倍すると整数になる世界です)

    例えば気温のデータを四捨五入で整数値にする場合、丸めて1度なら「0・5~1・4」で、数字10個分です

    (0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4)ところが丸めて0度だと「-0・4~+0・4」と9個!

    (-0.4, -0.3, -0.2, -0.1, 0, 0.1, 0.2, 0.3, 0.4)同じように四捨五入しておきながら、その範囲が違ってしまうのは、数学的に?大丈夫なのでしょうか。

    不等号や等号を使って極限まで「4」に近づけたとしても、どうみても範囲が違うようにみえませんか。

    Nを正の整数として、四捨五入とは次の式を満たす N だと思われます。
    (N-1)+ 0.5 ≦ N < N + 0.5

    ところが、N=0 の場合は、等号が抜けて極限まで行っても範囲が同じになるとは思えません。
    (N-1)+ 0.5 < N < N + 0.5 ⇒ -0.5 < N < +0.5

    気温の生データの -0.5度は、絶対値をとって「五入」するので、遠くの「丸めて-1度」になってしまいます。