VB 6 -Overflow异常 - 使用Val()函数的运行时错误

时间:2017-04-06 16:25:24

标签: vb6

使用下面的代码时,我得到运行时溢出异常:

我的应用程序是在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

2 个答案:

答案 0 :(得分:5)

在科学记数法中,1d9981 * 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可能会溢出。