Tin*_*ing 11 excel vba excel-vba
我有以下数据:
cell(1,1) = 2878.75
cell(1,2) = $31.10
cell(2,1) = $89,529.13
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用时round(cells(1,1).value*cells(1,2).value),2),结果不匹配cell(2,1).我认为它与舍入问题有关,但我只是想知道是否有可能round()采取正常行动.也就是说,为了value > 0.5,向上舍入.为了value < 0.5,向下舍入?
Ale*_* K. 16
VBA使用银行家四舍五入,试图弥补总是向上或向下四舍五入的偏差.你可以改为;
WorksheetFunction.Round(cells(1,1).value * cells(1,2).value, 2)
Run Code Online (Sandbox Code Playgroud)
小智 9
试试这个功能,可以整理一个双倍
'---------------Start -------------
Function Round_Up(ByVal d As Double) As Integer
Dim result As Integer
result = Math.Round(d)
If result >= d Then
Round_Up = result
Else
Round_Up = result + 1
End If
End Function
'-----------------End----------------
Run Code Online (Sandbox Code Playgroud)
如果要向上舍入,请使用半调整.将0.5添加到要舍入的数字并使用INT()函数.
答案= INT(x + 0.5)