VB.NET指定した精度の数値に四捨五入する

スポンサーリンク

数値を丸めるのは、System.Math クラスの Round メソッドで可能です。しかし、この Round メソッドは「偶数丸め」(JIS 丸めともいう) と呼ばれる手法で数値を丸めます。

この「偶数丸め」は日本国でも標準とされているのですが、残念ながらあまり知られていません。やはり、四捨五入が必要な業務が多かったりするわけです。

以下は、指定した桁で四捨五入をするメソッドです。

Floor メソッド、Ceiling メソッド及び、Pow メソッドの詳細は以下をご覧ください。

サンプルコード

以下にサンプルコードを示します。

VB.NET 全般
''' ------------------------------------------------------------------------
''' <summary>
'''     指定した精度の数値に四捨五入します。</summary>
''' <param name="dValue">
'''     丸め対象の倍精度浮動小数点数。</param>
''' <param name="iDigits">
'''     戻り値の有効桁数の精度。</param>
''' <returns>
'''     iDigits に等しい精度の数値に四捨五入された数値。</returns>
''' ------------------------------------------------------------------------
Public Shared Function ToHalfAdjust(ByVal dValue As Double, ByVal iDigits As Integer) As Double
    Dim dCoef As Double = System.Math.Pow(10, iDigits)

    If dValue > 0 Then
        Return System.Math.Floor  ((dValue * dCoef) + 0.5) / dCoef
    Else
        Return System.Math.Ceiling((dValue * dCoef) - 0.5) / dCoef
    End If
End Function

使用例は以下のようになります。

VB.NET 全般
    ' 有効小数桁数が小数第 2 位になるように四捨五入する
    Dim dValue As Double = ToHalfAdjust(12.325, 2)

    ' 四捨五入した結果を表示する
    MessageBox.Show(dValue.ToString())  '12.33

関連するリファレンス

準備中です。

スポンサーリンク