ここではVB.NETで数値の端数処理(四捨五入/切り捨て/切り上げ)をする方法について紹介します。
目次
四捨五入(Math.Roundメソッド)
Math.Roundメソッドは、四捨五入する小数点の位置を指定できます。一般的な四捨五入にしたい場合は、第3引数に MidpointRounding.AwayFromZero を指定します。指定しないと偶数の数値に丸められます。
Dim ret As Decimal
Dim num As Decimal
num = 1.56789
' 小数第1位を四捨五入する
ret = Math.Round(num, 0, MidpointRounding.AwayFromZero)
Console.WriteLine(ret)
' 実行結果:2
num = 1.56789
' 小数第2位を四捨五入する
ret = Math.Round(num, 1, MidpointRounding.AwayFromZero)
Console.WriteLine(ret)
' 実行結果:1.6
num = 1.56789
' 小数第3位を四捨五入する
ret = Math.Round(num, 2, MidpointRounding.AwayFromZero)
Console.WriteLine(ret)
' 実行結果:1.57
切り捨て(Math.Floorメソッド)
Math.Floorメソッドは、切り捨てる小数点の位置を指定できないので、切り捨て前に値を10倍し、切り捨てた後に1/10にする操作が必要になります。
Dim ret As Decimal
Dim num As Decimal
num = 1.56789
' 小数第1位を切り捨てる
ret = Math.Floor(num)
Console.WriteLine(ret)
' 実行結果:1
num = 1.56789
' 小数第2位を切り捨てる
num *= 10
ret = Math.Floor(num)
ret /= 10
Console.WriteLine(ret)
' 実行結果:1.5
num = 1.56789
' 小数第3位を切り捨てる
num *= 100
ret = Math.Floor(num)
ret /= 100
Console.WriteLine(ret)
' 実行結果:1.56
切り上げ(Math.Ceilingメソッド)
Math.Ceilingメソッドは、切り上げする小数点の位置を指定できないので、切り上げ前に値を10倍し、切り上げた後に1/10にする操作が必要になります。
Dim ret As Decimal
Dim num As Decimal
num = 1.23456
' 小数第1位を切り上げる
ret = Math.Ceiling(num)
Console.WriteLine(ret)
' 実行結果:2
num = 1.23456
' 小数第2位を切り上げる
num *= 10
ret = Math.Ceiling(num)
ret /= 10
Console.WriteLine(ret)
' 実行結果:1.3
num = 1.23456
' 小数第3位を切り上げる
num *= 100
ret = Math.Ceiling(num)
ret /= 100
Console.WriteLine(ret)
' 実行結果:1.24
以上、VB.NETで数値の端数処理(四捨五入/切り捨て/切り上げ)をする方法について解説しました。