宮崎県延岡市 | スマイルカラーソフトウェア | ユーザースタイルに合わせたプログラミングでお客様に幸せをお届けします。

指定した桁で四捨五入した値を取得

指定された桁(位)で揃えて四捨五入した値を返します。
使いやすいように Function プロシージャにしました。vKeta に丸める位を指定します。 省略または 0 で 1 の位、1 で 10 の位、2 で 100 の位です。-1 なら小数点第1位となります。

Public Function Adj45(ByVal cNum As Currency, Optional vKeta As Variant) As Currency
    If cNum = 0 Then
        Adj45 = 0
    Else
        If IsMissing(vKeta) Then
            vKeta = 0
        End If
        Adj45 = Int(Abs(cNum) / (10 ^ vKeta) + 0.5) * (10 ^ vKeta) * Sgn(cNum)
    End If
End Function

以下のように使用します。

    Dim cTemp As Currency
    
    cTemp = "1479.53"
    MsgBox(CStr(cTemp) & " は、" & vbCrLf & _
           "小数点第2位 四捨五入で " & CStr(Adj45(cTemp, -1)) & "、" & vbCrLf & _
           "小数点第1位 四捨五入で " & CStr(Adj45(cTemp, 0)) & "、" & vbCrLf & _
           "1の位を 四捨五入で " & CStr(Adj45(cTemp, 1)) & "、" & vbCrLf & _
           "10の位を 四捨五入で " & CStr(Adj45(cTemp, 2)) & " となります。")

結果は次のようになります。