0

私は、Visual Basic の恥ずかしくて厄介な小さな問題に苦労してきました (お分かりのように、私はおそらく初心者です)。問題は、数字の代わりに文字が入力された場合のエラー メッセージ システムです。「整数から文字列に変換できません。

これに関する任意の助けをいただければ幸いです。

これが私のコードです:

    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

よろしくお願いします:)!

4

2 に答える 2

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
于 2013-09-15T09:25:02.367 に答える
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、数値以外の値を入力するとエラーが発生します。問題を回避する最善の方法は、上記のコードに示されているように、常に正しいタイプに依存することです。入力は文字列ですが、IsNumeric正確に文字列を入力として受け取ります。正しい入力が確認されると、対応する型 ( 、ただし、小数点以下の桁数に依存したり、考慮Integerしたい場合があります) への変換が実行され、数値型で mathematica 演算が実行されます。最後に、(この回答の一貫性を保つために) への変換を実行していますが、VB.NET はこの変換 (数値から文字列へ) を問題なく暗黙的に実行することに注意してください。DecimalDoubleString

于 2013-09-15T09:25:31.897 に答える