VB.NETのFloorメソッドとTruncateメソッドで、切り捨てを行うサンプルです。
目次
説明 | 切り捨てる(Floorメソッド) |
サンプル | 小数第一位で切り捨てる |
小数第二位または小数第三位で切り捨てる | |
1の位または10の位で切り捨てる | |
FloorメソッドとTruncateメソッドの違い |
Floorメソッド
Public Shared Function Floor (d As Double) As Double |
- Floorメソッドは、小数第一位で切り捨てます。
- 少数第一位以外を対象とする場合は、値を10倍にしたり1/10にする等の操作で求めることができます。
- 引数はDouble型で戻り値もDouble型です。
- Sharedメソッドなのでインスタンスの生成は不要です。
- Floorは床という意味です。
小数第一位で切り捨てる
Module Module1
Sub Main()
' 小数第一位で切り捨て
Dim a As Double = 2.26
Console.WriteLine(Math.Floor(a)) '2
' 小数第一位で切り捨て
Dim b As Double = 2.82
Console.WriteLine(Math.Floor(b)) '2
' マイナス値の場合
Dim c As Double = -2.82
Console.WriteLine(Math.Floor(c)) '-3
End Sub
End Module
Floorメソッドで小数第一位を切り捨てています。
13行目は、マイナスの値の場合です。
小数第二位または小数第三位で切り捨てる
Module Module1
Sub Main()
Dim a As Double = 12.262
' 小数第二位で切り捨て
Console.WriteLine((Math.Floor(a * 10)) / 10) ' 12.2
' 小数第三位で切り捨て
Console.WriteLine((Math.Floor(a * 100)) / 100) ' 12.26
End Sub
End Module
6行目は、小数第二位で切り捨てています。以下の操作です。
1.対象の値に10を掛けます。(12.262 * 10 = 122.62)
2.Floorメソッドを使用して小数点以下で切り捨てます。(122.62 → 122)
3.対象の値を再度10で割ります。(122 / 10 = 12.2)
1の位または10の位で切り捨てる
Module Module1
Sub Main()
Dim a As Double = 122.2
' 1の位で切り捨て
Console.WriteLine((Math.Floor(a / 10)) * 10) ' 120
' 10の位で切り捨て
Console.WriteLine((Math.Floor(a / 100)) * 100) ' 100
End Sub
End Module
6行目は、1の位で切り捨てています。以下の操作です。
1.対象の値を10で割ります。(122.2 / 10 = 12.22)
2.floorメソッドを使用して小数点以下で切り捨てます。(12.22 → 12)
3.対象の値を再度10で掛けます。(12 * 10 = 120)
以下はMicrosoftのFloorメソッドのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.math.floor?view=netframework-4.8#System_Math_Floor_System_Double_
FloorメソッドとTruncateメソッドの違い
FloorメソッドとTruncateメソッドの違いです。
Module Module1
Sub Main()
' 小数第一位で切り捨て
Dim a As Double = 2.26
Console.WriteLine(Math.Floor(a)) ' 2
Console.WriteLine(Math.Truncate(a)) ' 2
' 小数第一位で切り捨て
Dim b As Double = 2.82
Console.WriteLine(Math.Floor(b)) ' 2
Console.WriteLine(Math.Truncate(b)) ' 2
' マイナス値の場合
Dim c As Double = -2.82
Console.WriteLine(Math.Floor(c)) ' -3
Console.WriteLine(Math.Truncate(c)) ' -2
End Sub
End Module
Truncateメソッドは、Floorメソッドと同じく小数第一位で切り捨てます。
違いは、16行目のマイナスの値の場合です。
Floorメソッドは、負の無限大方向になります。
Truncateメソッドは、小数部の桁を破棄します。
以下はMicrosoftのTruncateメソッドのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.math.truncate?view=netframework-4.8#System_Math_Truncate_System_Double_
関連の記事