Round 的百位的四舍五入的问题Round(692.5,0)应该等于653 但实际等于652 WHY?Round(2.5,0)=3已经解决 sql语句里执行的Round()
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/23 17:01:48
Round 的百位的四舍五入的问题Round(692.5,0)应该等于653 但实际等于652 WHY?Round(2.5,0)=3已经解决 sql语句里执行的Round()
Round 的百位的四舍五入的问题
Round(692.5,0)应该等于653 但实际等于652 WHY?
Round(2.5,0)=3
已经解决 sql语句里执行的Round()
Round 的百位的四舍五入的问题Round(692.5,0)应该等于653 但实际等于652 WHY?Round(2.5,0)=3已经解决 sql语句里执行的Round()
VB6中文版说这个函数是四舍五入函数,实际上这个函数采用的四舍六入五留双.VB的Round所采用的算法是这样的:
1.25留一位,则1.2=round(1.25)
如果是1.35,则1.4=round(1.35)
奇进偶不进.这样在一大串需要四舍五入的数相加相减相乘时误差小一点.eg:1.25+1.35+1.45+1.55+1.15+1.65=8.4=round(1.25)+round(1.35)+round(……
ROUND函数符合国家和国际标准,该函数是正确的.原先的四舍五入只是一个简化.
你可以试下这个函数
Function RoundEx(Number,Optional nLen As Long = 0)
On Error GoTo ErrRound
Dim dblAdd As Double
dblAdd = 10 ^ (-nLen - 1)
If Number < 0 Then dblAdd = -dblAdd
Number = Number + dblAdd
RoundEx = Round(Number,nLen)
Exit Function
ErrRound:
MsgBox "实时错误:" & Err.Number & vbCrLf & vbCrLf & Err.Description,vbExclamation,"错误提示"
End Function