VB.NET 切り捨てのサンプル(Floor/Truncate)

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_

関連の記事

VB.NET 四捨五入のサンプル(Round)
VB.NET 切り上げのサンプル(Ceiling)

△上に戻る