从输入框计算,带有字母输入的错误消息

时间:2013-09-15 09:17:50

标签: vb.net calculator inputbox msgbox

我在视觉基础上遇到了一个令人尴尬和讨厌的小问题(我,正如你可能看到的那样,一个初学者)。问题是输入字母而不是数字时的错误消息系统。我得到“无法从整数转换为字符串。

对此的任何帮助都将非常感激。

这是我的代码:

    Dim number1, number2 As Integer
    Dim sum As String

    number1 = InputBox("first value:")
    number2 = InputBox("second value:")
    sum = number1 + number2

    If IsNumeric(sum) Then
        MsgBox("The sum of the numbers " & number1 & " and " & number2 & " is: " & sum)
    ElseIf Not IsNumeric(sum) Then
        MsgBox("You may only type numbers into the fields!, trie again")
    End If

提前,谢谢:)!

2 个答案:

答案 0 :(得分:0)

对您的数字框进行验证,以便它们必须是数字,而不仅仅是您的数字。

If Not IsNumeric(number1) Then
  MsgBox("You may only type numbers into the fields!, try again")
End If

If Not IsNumeric(number2) Then
  MsgBox("You may only type numbers into the fields!, try again")
End If

答案 1 :(得分:0)

您正在进行错误的Type转换。改进的代码:

Dim input1, input2 As String

input1 = InputBox("first value:")
input2 = InputBox("second value:")

If IsNumeric(input1) And IsNumeric(input2) Then
    MsgBox("The sum of the numbers " & input1 & " and " & input2 & " is: " & (Convert.ToInt32(input1) + Convert.ToInt32(input2)).ToString())
Else
    MsgBox("You may only type numbers into the fields!, try again")
End If

InputBox通过将它们与整数类型变量相关联来返回您隐含转换为Integer的字符串,因此在输入非数字值时会引发错误。避免出现问题的最佳方法是始终依赖于正确的Type,如上面的代码所示:输入是字符串,但IsNumeric将精确的字符串作为输入。确认正确的输入后,转换为相应的类型(Integer,但您可能希望依赖DecimalDouble来计算小数位数)并执行mathematica操作使用数字类型执行。最后,我正在执行转换为String(只是为了保持这个答案一致),但请记住,VB.NET隐含地执行此转换(从数字到字符串)没有任何问题。