小数点以下切上げ整数を求める
Math.Ceilingメソッドを使うと、引数に指定した数値以上の最小整数、つまり小数点以下の数値を切り上げた整数値を返します。
誤差に注意
Math.Ceilingメソッドの引数は、Double型または、Decimal型のいずれかの数値型を指定します。Double型を使うと誤差が出て、思わぬ結果になることがあります。誤差が出て困るようなら、Decimal型を使います。
' 切り上げにより税込価格を計算 Dim zeiritsu As Decimal = 0.05D ' Dを付けないとDouble型になる Dim hontai As Decimal = 150 Dim zeikomi As Decimal = hontai * (1 + zeiritsu) Console.WriteLine(Math.Ceiling(zeikomi)) ' 158
Math.Ceilingメソッドでは、引数に指定した数値の整数値切り上げの機能しかありません。小数点以下や1の位以上を切り上げる時は、少し工夫する必要があります。
' 小数第二位を切り上げ Dim suuti As Decimal = 1.35D ' Dを付けないとDouble型になる ' 10倍して切り上げ、その後10で割る Dim kekka As Decimal = Math.Ceiling(suuti * 10D) / 10D Console.WriteLine(kekka) ' 1.4
Math.Ceilingメソッドを使ったサンプルプログラムです。戻り値も引数と同じ数値型に揃えます。プログラムが完成したら、テストしてみてください。
ソースリストの枠内をクリックすると全選択できます。
Module Module1 Sub Main() ' 変数の宣言 Dim inStr As String Dim inNum As Decimal Dim anser As Decimal Do Console.WriteLine("endを入力で終了します") ' キーボードから入力 Console.WriteLine( _ "切り上げする数値を入力してください") inStr = Console.ReadLine() If inStr = "end" Then ' endを入力すると、Exit Doで Loopを抜ける Exit Do End If ' IsNumeric関数で入力数値チェック ' エラーがなければ数値に変換 If IsNumeric(inStr) = True Then ' Decimal型数値に変換 inNum = Decimal.Parse(inStr) ' Math.Ceilingを使って数値の切上げ anser = Math.Ceiling(inNum) ' 結果の表示 Console.WriteLine() Console.WriteLine("結果:" & anser) Console.WriteLine() End If Loop End Sub End Module