指定された桁(位)で揃えて四捨五入した値を返します。
使いやすいように 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)) & " となります。")
結果は次のようになります。