四捨五入を行うMathクラスのRound関数では、
小数点以下の桁数の指定ができましたが、
切り捨てを行うFloorメソッド、
切り上げを行うCeilingメソッドでは
小数点以下の桁数の指定ができません。
あらかじめ用意されている関数では実現できないため、
自分でコードを書きます。
小数点以下第2位での切り捨て、切り上げ
Sub Main()
' 小数点第2位での切り捨て
Dim data As Double = 9.278
data *= 10
data = Math.Floor(data)
data /= 10
Console.WriteLine(data)
' 小数点第2位での切り上げ
data = 9.218
data *= 10
data = Math.Ceiling(data)
data /= 10
Console.WriteLine(data)
End Sub
9.2
9.3
そのままの数値では、処理できないので、
いったん、10倍して小数点を右にひとつずらします。
そうすると、9.278から92.78になります。
ここでFloor関数を使えば、小数点以下を切り捨てますから92となります。
92を10で割り、小数点を左にひとつずらせば、9.2となり、
望み通りの結果が得られます。
切り上げのCeiling関数でも同じです。
小数点以下第3位での切り捨て、切り上げ
小数点以下第2位では、もとの数値を10倍しましたが、
それと同じように第3位では桁がひとつ変わっただけなので、
100倍するようにします。
Sub Main()
' 小数点第3位での切り捨て
Dim data As Double = 9.278
data *= 100
data = Math.Floor(data)
data /= 100
Console.WriteLine(data)
' 小数点第3位での切り上げ
data = 9.763
data *= 100
data = Math.Ceiling(data)
data /= 100
Console.WriteLine(data)
End Sub
9.27
9.77
これで小数点第2位以下の切り捨て、
切り上げ処理ができるようになりました。
四捨五入の解説記事はコチラ