VB.NET 四捨五入のサンプル(Round)

VB.NETの四捨五入のサンプルです。

確認環境
・Microsoft Visual Studio Community 2019

目次

四捨五入 四捨五入(Round)
注意点 四捨五入の銀行丸め

四捨五入(Round)

Public Shared Function Round(value As Double, mode As MidpointRounding) As Double
Public Shared Function Round(value As Double, digits As Integer, mode As MidpointRounding) As Double

四捨五入のサンプルです。Roundメソッドを使用します。
Roundメソッドの2つめの数値の引数(digits)は、戻り値の小数部の桁数です。

Module Module1
  Sub Main()

    Dim a As Double = 12.262
    ' 小数第一位で四捨五入
    Console.WriteLine(Math.Round(a, MidpointRounding.AwayFromZero)) '12
    ' 小数第二位で四捨五入
    Console.WriteLine(Math.Round(a, 1, MidpointRounding.AwayFromZero)) '12.3
    ' 小数第三位で四捨五入
    Console.WriteLine(Math.Round(a, 2, MidpointRounding.AwayFromZero)) '12.26

    Dim b As Double = 12.828
    ' 小数第一位で四捨五入
    Console.WriteLine(Math.Round(b, MidpointRounding.AwayFromZero)) '13
    ' 小数第二位で四捨五入
    Console.WriteLine(Math.Round(b, 1, MidpointRounding.AwayFromZero)) '12.8
    ' 小数第三位で四捨五入
    Console.WriteLine(Math.Round(b, 2, MidpointRounding.AwayFromZero)) '12.83

  End Sub
End Module

6行目は、Roundメソッドの2つめの数値の引数がないので、小数第一位で四捨五入され、結果は整数になります。
8行目は、Roundメソッドの2つめの数値の引数が1なので、小数第二位で四捨五入され、結果は少数第一位までの数値になります。

以下は、Microsoft公式のRoundメソッドのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.math.round?view=netframework-4.8

四捨五入の銀行丸め

Public Enum MidpointRounding
        ToEven = 0
        AwayFromZero = 1
End Enum

Roundメソッドで、3つめの引数のMidpointRounding.AwayFromZeroを指定しない場合、銀行丸めになります。
銀行丸めは、端数が0.5で整数の箇所が偶数の場合は、ゼロへ丸めます。

Module Module1
  Sub Main()

    Dim a As Double = 2.5
    ' 小数第一位で四捨五入
    Console.WriteLine(Math.Round(a)) '2
    Console.WriteLine(Math.Round(a, MidpointRounding.AwayFromZero)) '3

    Dim b As Double = 3.5
    ' 小数第一位で四捨五入
    Console.WriteLine(Math.Round(b)) '4
    Console.WriteLine(Math.Round(b, MidpointRounding.AwayFromZero)) '4

  End Sub
End Module

4行目は、変数に2.5を代入しています。
6行目は、Roundで四捨五入していますが結果は2です。端数が0.5で、整数の箇所が偶数のため銀行丸めになっています。
7行目は、3つめの引数のMidpointRounding.AwayFromZeroを指定しているため結果は3です。

9行目は、変数に3.5を代入しています。
この場合は、整数の箇所が奇数なので結果は4です。

関連の記事

VB.NET 計算のサンプル(a += 1やa -= 1)

△上に戻る