VB6.0自定义函数求助

Function SSWR(x As String, n As Integer) As Double
If Mid(x, InStr(x, ".") + n, 1) >= 5 Then
x = Left(x, InStr(x, ".") + n - 1) + (1 / (1 * 10 ^ (n - 1)))
Else
x = Left(x, InStr(x, ".") + n - 1)
End If
End Function
写的个自定义函数对小数进行四舍五入,不知道对不对,x代表小数,n表示保留位数
但是在调用时弹出来的怎么是0,不知道怎么回事,求高手解答??

Private Sub Form_Load()
MsgBox SSWR("1.123456", 6)
End Sub

Function SSWR(x As String, n As Integer) As Double
If Mid(x, InStr(x, ".") + n, 1) >= 5 Then
x = Left(x, InStr(x, ".") + n - 1) + (1 / (1 * 10 ^ (n - 1)))
Else
x = Left(x, InStr(x, ".") + n)
End If
SSWR = x
End Function
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-28
函数没返回值追问

该怎么改呢

追答

在End Function前加入:
SSWR=val(x)