四捨五入を実現するには、MathクラスのRoundメソッドを使用します。
基本的な使い方
Sub Main()
Dim d1 As Double = 9.385
' 小数第一位で四捨五入
Console.WriteLine(Math.Round(d1, MidpointRounding.AwayFromZero))
' 小数第二位で四捨五入
Console.WriteLine(Math.Round(d1, 1, MidpointRounding.AwayFromZero))
' 小数第三位で四捨五入
Console.WriteLine(Math.Round(d1, 2, MidpointRounding.AwayFromZero))
Dim d2 As Double = 9.614
' 小数第一位で四捨五入
Console.WriteLine(Math.Round(d2, MidpointRounding.AwayFromZero))
' 小数第二位で四捨五入
Console.WriteLine(Math.Round(d2, 1, MidpointRounding.AwayFromZero))
' 小数第三位で四捨五入
Console.WriteLine(Math.Round(d2, 2, MidpointRounding.AwayFromZero))
End Sub9
9.4
9.39
10
9.6
9.61MathクラスのRound関数の使い方です。
第1引数は、四捨五入したい数値、変数などを指定します。
第2引数は、四捨五入後の小数点以下の桁数を指定します。
第3引数は、数値の丸め方を指定します。
通常の四捨五入をしたい場合は、
MidpointRounding.AwayFromZeroを指定します。
これで小数点以下の四捨五入処理ができます。
最近接偶数への丸め
丸め方の種類として「最近接偶数への丸め」と言う丸め方があります。
これは、最も近い偶数に数値を丸める。という端数処理方法です。
例えば、6.5の場合は6になり、7.5の場合は8になります。
このような丸め方は
莫大な量を処理した時の誤差が小さくなると言うメリットがあり、
銀行などの処理で良く使用されたようです。
そのため「銀行丸め」と呼ばれる事もあるようです。
「最近接偶数への丸め」のサンプル
Sub Main()
'最近接偶数への丸め
Console.WriteLine(Math.Round(1.5, MidpointRounding.ToEven)) '出力 2
Console.WriteLine(Math.Round(2.5, MidpointRounding.ToEven)) '出力 2
Console.WriteLine(Math.Round(3.5, MidpointRounding.ToEven)) '出力 4
Console.WriteLine(Math.Round(4.5, MidpointRounding.ToEven)) '出力 4
'最近接偶数への丸め 小数点以下
Console.WriteLine(Math.Round(1.51, MidpointRounding.ToEven)) '出力 2
Console.WriteLine(Math.Round(2.51, MidpointRounding.ToEven)) '出力 3
Console.WriteLine(Math.Round(3.51, MidpointRounding.ToEven)) '出力 4
Console.WriteLine(Math.Round(4.51, MidpointRounding.ToEven)) '出力 5
'最近接偶数への丸め 小数点以下
Console.WriteLine(Math.Round(1.55, MidpointRounding.ToEven)) '出力 2
Console.WriteLine(Math.Round(2.55, MidpointRounding.ToEven)) '出力 3
Console.WriteLine(Math.Round(3.55, MidpointRounding.ToEven)) '出力 4
Console.WriteLine(Math.Round(4.55, MidpointRounding.ToEven)) '出力 5
End Sub「最近接偶数への丸め」を指定するには、
MidpointRounding.ToEvenを指定します。
どのような出力結果になるのかを知っておきましょう。
2.5では2となるのに、2.51では3となる仕様です。
ちなみにRound(2.5)のように、
第1引数のみ指定した場合の丸め方は
「最近接偶数への丸め」が適用され、
出力は2となりますので、注意が必要です。
これで四捨五入と「最近接偶数への丸め」の処理ができるようになりました。
