数値に変換 TryParse [VB]

TryParseで数値に変換できる

キーボードから入力
文字列入力
整数入力
実数入力
入力エラー対応方法
数値変換 TryParse

キーボードからの入力したデータはすべて文字列として扱われるので、プログラム内で数値として扱うためには、Integer.TryParseメソッドや、Double.TryParseメソッドで、数値に変換する必要があります。

たとえば、Integer.TryParse を使えば、入力した文字列が、Integer型の整数であるかか否かをチェックして、整数に変換してくれるので、入力した文字列が整数か否かを調べる必要はありません。

入力値を IsNumeric関数でチェックするサンプル

整数に変換 Integer.TryParse

整数に変換プログラム

Integer.TryParseメソッドは、Integer.TryParse(inStr, InNum)ように、引数をふたつ指定します。一番目のinStrは String型で、整数に変換したい文字列(キーボードからの入力値など)、二番目の引数inNumは Integer型とし、instrの文字列が正しく整数に変換できたとき、その変換結果の整数が入ります。

正しく整数に変換できたかどうかは、Integer.TryParseメソッドの返り値で判ります。正しく変換できたときはTrueを、そうでなければ Falseを返します。

それでは、キーボードから入力したデータが、整数でなければ、Do Loop を使って再入力できるようにするプログラムを作成します。

ソースリストの枠内をクリックすると全選択できます。

Module Module1

  Sub Main()
      ' 変数の宣言
      Dim inStr As String
      Dim inNum As Integer
      ' 整数以外の入力のときは再入力
      Do
          Console.WriteLine("** 整数を入力してください **")
          ' キーボードから入力
          inStr = Console.ReadLine()
          ' Integer.TryParseメソッドで整数検査と変換
          If Integer.TryParse(inStr, inNum) = True Then
              ' 正しく整数に変換された時
              Console.Write("入力した整数=")
              Console.WriteLine(inNum)
              ' 正しく整数が入力されたので、Do Loopを抜ける
              Exit Do
          Else
              ' 整数に変換できなかった時
              Console.WriteLine("入力値に誤りがあります")
              Console.WriteLine()
          End If
      Loop
  End Sub

End Module

プログラムが完成したら、[Ctrl]キーを押したまま、[F5]キーを押して、プログラムを実行して確認してください。


実数に変換 Double.TryParse

Double.TryParse を使えば、整数変換と同様に、入力した文字列を実数に変換できます。

前のサンプルプログラムを実数が入力できるように修正します。

Module Module1

  Sub Main()
      ' 変数の宣言
      Dim inStr As String
      Dim inNum As Double
      ' 整数以外の入力のときは再入力
      Do
          Console.WriteLine("** 実数を入力してください **")
          ' キーボードから入力
          inStr = Console.ReadLine()
          ' Double.TryParseメソッドで数値検査と変換
          If Double.TryParse(inStr, inNum) = True Then
              ' 正しく実数に変換された時
              Console.Write("入力した実数=")
              Console.WriteLine(inNum)
              ' 正しく実数が入力されたので、Do Loopを抜ける
              Exit Do
          Else
              ' 実数に変換できなかった時
              Console.WriteLine("入力値に誤りがあります")
              Console.WriteLine()
          End If
      Loop
  End Sub

End Module