Back to Top

Daily Archives: 2016年3月18日

VB.NET 小数点を切捨・切上・四捨五入する

小数点以下の数値を丸める方法は、場合により異なるため関数を作成する必要があります。

例えば、切り捨て1.5なら1にして-1.5なら-1にする関数は標準ではありません。

小数点以下を切り捨てする

Public Shared Overloads Function RoundDown(ByVal val As Double) As Double
    If 0.0 < val Then
        return Math.Floor(val)
    Else
        return Math.Ceiling(val)
    End If
End Function

Public Shared Overloads Function RoundDown(ByVal val As Decimal) As Decimal
    If 0.0 < val Then
        return Math.Floor(val)
    Else
        return Math.Ceiling(val)
    End If
End Function

 

小数点以下を切り上する

Public Shared Overloads Function RoundUp(ByVal val As Double) As Double
    If 0.0 < val Then
        return Math.Ceiling(val)
    Else
        return Math.Floor(val)
    End If
End Function

Public Shared Overloads Function RoundUp(ByVal val As Decimal) As Decimal
    If 0.0 < val Then
        return Math.Ceiling(val)
    Else
        return Math.Floor(val)
    End If
End Function

 

小数点以下を四捨五入する

Public Shared Overloads Function SimpleRound(ByVal val As Double) As Double
    Return Math.Round(val, MidpointRounding.AwayFromZero)
End Function

Public Shared Overloads Function SimpleRound(ByVal val As Decimal) As Decimal
    Return Math.Round(val, MidpointRounding.AwayFromZero)
End Function

 

少数桁を指定しての丸め処理

'少数桁を指定して小数点以下を切り捨て
Public Shared Overloads Function RoundDown(ByVal val As Double, digit As short) As Double
    Dim d As double = Math.Pow(10.0, digit)
    return ((RoundDown(val * d) / d))
End Function

'少数桁を指定して小数点以下を切り上
Public Shared Overloads Function RoundUp(ByVal val As Double, digit As short) As Double
    Dim d As double = Math.Pow(10.0, digit)
    return ((RoundUp(val * d) / d))
End Function

'少数桁を指定して小数点以下を四捨五入
Public Shared Overloads Function SimpleRound(ByVal val As Double, digit As short) As Double
    Dim d As double = Math.Pow(10.0, digit)
    return ((SimpleRound(val * d) / d))
End Function

 

VB.NET 特殊文字の扱い方

改行・タブ・引用符など、特殊文字をプログラムで使用する方法を記載します。

ControlCharsクラスを使用する

Dim str As String = "ABcDEabcdeあいう"

'タブ文字を付加
Dim s1 As String = str & ControlChars.Tab

'改行コードを付加
Dim s2 As String = str & System.Environment.NewLine

'引用符を前後に付加
Dim s3 As String = ControlChars.Quote & str & ControlChars.Quote

 

Chr()を使用する

ControlCharsクラスは特定の文字しか無いので、それ以外はChr()を使います。

Dim str As String = "ABcDEabcdeあいう"

'タブ文字を付加
Dim s1 As String = str & Chr(&H09)

'改行コードを付加
Dim s2 As String = str & Chr(&H0D) & Chr(&H0A)

'引用符を前後に付加
Dim s3 As String =  Chr(&H22) & str & Chr(&H22)