基本函数问题???
如:53.123
我要得到为53.12
如:53.125
我要得到为53.13
就是要得到一个四舍五入的结果哦。。。
我想要用两种方法得到,一种方法是不用基本函数直接得到结果,。
第二种方法是用基本函数得到其结果哦。。
望指教哦。。。
希望有一定的代码哦。。。
谢谢拉
[解决办法]
Private Sub Command1_Click()
MsgBox GetRound(Text1.Text, 2)
End Sub
Private Function GetRound(nNum As Double, n As Integer) As Double
Dim nDot As Integer, strNum As String
strNum = Trim(Str(nNum))
nDot = InStr(strNum, ". ")
GetRound = Round(nNum + 1 / 10 ^ (Len(strNum) + 1), n)
End Function
[解决办法]
VB中的Round严格来不是四舍五入
它是四舍六入,而对于5来言就要看其前一位,如果前一位是单数就入双数就舍
[解决办法]
val(format(53.123), "0.00 ")=53.12
val(format(53.125), "0.00 ")=53.13
[解决办法]
……汗
更正:
val(format(53.123, "0.00 "))=53.12
val(format(53.125, "0.00 "))=53.13
[解决办法]
十几年前学Basic时掌握的四舍五入的公式:
Int(数值 * 10^保留的小数位数 + 0.5) / 10^保留的小数位数
比如(保留两位小数):
? Int(53.24 * 10 + 0.5) /10
? Int(53.25 * 10 + 0.5) /10
? Int(53.26 * 10 + 0.5) /10
这样可以避免Round的四舍六入五留双的问题
[解决办法]
……汗
……汗
更正:
val(format(53.123, "0.00 "))=53.12
val(format(53.125, "0.00 "))=53.13
[解决办法]
Round()函数不是四舍五入??