输入期间无效的转换

时间:2008-11-18 16:49:15

标签: vb.net

我正在做一个基本的家庭作业,看起来像这样:

    While input <> -1
        input = CDbl(InputBox("Enter numbers to add, enter -1 to stop"))
        values = values + input
    End While

直到我在输入框中按“取消”才能正常工作。然后字符串输入是“”,我得到以下错误:

System.InvalidCastException {"Conversion from string "" 
                              to type 'Double' is not valid."}

我想我理解错误,我正在尝试使用CDbl转换非数字值。我的问题是编写此代码的更合适的方法是什么?是代码,还是缺少错误处理?

3 个答案:

答案 0 :(得分:4)

您可以尝试使用Double.TryParse或使用带有Double.Parse的try catch块。由于这是一项家庭作业,我会让你在MSDN上查看它们。

答案 1 :(得分:2)

尝试使用Double.TryParse

Dim value as Double = Nothing
If Double.TryParse(InputBox("Enter numbers..."), value) Then
    values = values + value
End If

我的语法可能有点偏,但你应该明白

答案 2 :(得分:0)

如果他们输入的内容不是double或者值太大而无法存储在double中,则会出现错误。

所提出的建议应该足够了,你基本上想要在尝试投射之前验证用户输入。