FROM ME TO YOU

oh my bizarre life !!

JIS丸め

JIS丸めについてうまく思い出せなかったのでメモ。

種類 四捨五入
一般的 0.5以上切り上げ
JIS丸め 0.5以外は同じ。0.5が四捨五入後が偶数になるように処理。

四捨五入後の値を合計する場合等、通常の四捨五入だと誤差が大きくなるため。 JIS丸めでも偶数や奇数の偏りがあった場合は誤差は発生する(通常の四捨五入より抑えられるが)

ExcelのRound関数は一般的な四捨五入で、ExcelVBAのRoundはJIS丸めなのは有名な話。

C#でも書いてみた。 一般的な四捨五入にするにはMidpointRounding.AwayFromZeroが必要らしい。

        static void Main(string[] args)
        {
            Console.WriteLine(Math.Round(2.5));
            // 2
            Console.WriteLine(Math.Round(2.5, MidpointRounding.AwayFromZero));
            // 3
        }