Math.Floorメソッドは、引数に指定した数値以下の最大整数、つまり小数点以下の数値を切り下げた整数値を返します。
Math.Floorメソッドの引数は、Double型または、Decimal型のいずれかにします。
Double型を使うと誤差が出ることがあります。誤差が出ると困るようなら、Decimal型を使ってください。
' 切り下げによって税込価格を計算 Dim taxRate As Decimal = 0.05D ' Dを付けないとDouble型になる Dim hontai As Decimal = 150 Dim zeikomi As Decimal = hontai * (1 + taxRate) Console.WriteLine(Math.Floor(zeikomi)) ' 157
Math.Floorメソッドでは、引数に指定した数値の整数値切り下げ機能しかありません。小数点以下や1の位以上を切り下げる時は、少し工夫します。
' 小数第二位を切り下げ Dim suuti As Decimal = 1.35D ' Dを付けないとDouble型になる ' 10倍してMath.Floorで切り下げ、その後10で割る Dim kekka As Decimal = Math.Floor(suuti * 10D) / 10D Console.WriteLine(kekka) ' 1.3
切り捨てと切り下げは同義ではありません。たとえば、マイナス数値-7.5の場合、次のようになります。
数値切り捨てメソッド Math.Truncate はこちらからどうぞ
Math.Floorメソッドを使ったサンプルプログラムです。戻り値も引数と同じ数値型に揃えます。
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.Floorを使って切り下げ anser = Math.Floor(inNum) ' 切り下げ結果の表示 Console.WriteLine() Console.WriteLine("切り下げ結果:" & anser) Console.WriteLine() End If Loop End Sub End Module
| ◆ VB 文法 目次へ◆ |
|---|
| 文字列を表示する |
| Dim 変数の宣言 |
| = 代入演算子 |
| キーボード入力 |
| & 文字列連結演算子 |
| 3つ以上の文字列を連結 |
| 文字列を改行する |
| + 加算演算子 |
| - 減算演算子 |
| * 乗算演算子 |
| / 除算演算子 |
| ¥ 整数除算演算子 |
| Mod 整数剰余演算子 |
| ^ べき乗(累乗)演算子 |
| += -= *= /= |
| \= ^= &= |
| ◆ VB 文法 目次へ◆ |
|---|
| Day() |
| Fix() |
| Format() 数値編 |
| Hour() |
| Int() |
| IsNumeric() |
| LTrim() |
| Minute() |
| Month() |
| RTrim() |
| Second() |
| Space() |
| Trim() |
| Year() |
| ◆ VB 文法 目次へ◆ |
|---|
| Math.Absメソッド |
| Math.Ceilingメソッド |
| Math.Floorメソッド |
| Math.Maxメソッド |
| Math.Minメソッド |
| Math.Roundメソッド |
| Math.Signメソッド |
| Math.Truncateメソッド |