'使用方法:myRound(源数据,小数位数,进位数值)
'当进位数值不写时,默认使用四舍五入
'四舍五入myRound(1.815,2) 返回:1.82
' myRound(1.815,2,5) 返回:1.82
'七舍八入myRound(1.818,2,8) 返回:1.82
'八舍九入myRound(1.818,2,9) 返回:1.81
Function myRound(Number As Double, N As Integer, Optional I As Integer) As Double
If I <> 0 Then
myRound = Fix(Eval((Number + Sgn(Number) * (1 - 0.1 * I) / 10 ^ N) * 10 ^ N)) / 10 ^ N
Else
myRound = Fix(Eval((Number + Sgn(Number) * 0.5 / 10 ^ N) * 10 ^ N)) / 10 ^ N
End If
End Function