我在视觉基础上遇到了一个令人尴尬和讨厌的小问题(我,正如你可能看到的那样,一个初学者)。问题是输入字母而不是数字时的错误消息系统。我得到“无法从整数转换为字符串。
对此的任何帮助都将非常感激。
这是我的代码:
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
提前,谢谢:)!
答案 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
,但您可能希望依赖Decimal
或Double
来计算小数位数)并执行mathematica操作使用数字类型执行。最后,我正在执行转换为String
(只是为了保持这个答案一致),但请记住,VB.NET隐含地执行此转换(从数字到字符串)没有任何问题。