使用下面的代码时,我得到运行时溢出异常:
我的应用程序是在visual basic 6.0中。
Private Sub Command1_Click()
Dim strItn As String
strItn = "1d998" 'when strItn has '1d998' then only error comes
If Val(strItn) = 0 Then
MsgBox ("test1")
Else
MsgBox ("else")
End If
End Sub
答案 0 :(得分:5)
在科学记数法中,1d998
是1 * 10^998
,这是1098的力量。
在VBA中可用的任何类型的变量中,该数字大于can be stored。
如果您确实想要使用此数字执行大量算术运算,则可能需要查看Handling numbers larger than Long in VBA。
答案 1 :(得分:1)
只需使用"增强型" Val
这样的功能
Public Function C_Val(ByVal Value As String) As Double
C_Val = Val(Replace(Replace(Value, "e", "_"), "d", "_"))
End Function
在1d987
输入时,应该返回1
无溢出。请注意,e
也是科学记数法,Val
可能会溢出。