zukucode
主にWEB関連の情報を技術メモとして発信しています。

VB.NET 文字列を数値に変換する方法

VB.NETString型の文字列を数値に変換する方法を紹介します。

以下の例では、Integer型の数値に変換しています。

Dim str As String = "100"
Dim i As Integer = CInt(str)

数値変換する際の注意点

文字列型の変数を数値型に変換する場合には以下に注意する必要があります。

数値に変換可能なこと

例えばabcという文字列をCInt("abc")のように数値に変換しようとするとエラーが発生します。

数値に変換が可能かどうかはIsNumeric関数で判定でします。

If IsNumeric(str) Then
    'strは数値に変換可能
Else
    'strは数値に変換不可能
End If

数値型の精度の範囲内に収まる必要がある

VB.NETInteger型の精度は-2147483648 ~ 2147483647です。

そのため、例えば9999999999という文字列をCInt("9999999999")のように数値型に変換しようとするとエラーが発生します。

上記で紹介したIsNumeric関数では9999999999は数値に変換可能なため、Integer型の変数に変換可能かどうかのチェックを別途行う必要があります。

Integerに変換可能かどうかを判定する方法はVB.NET Integerに変換可能かどうかを判定するで紹介しています。

Integer以外の数値型に変換

大きな数値を扱う場合はLongDecimalを使用することが多いです。

型変換にはそれぞれCLngCDecを使用します。

Dim str As String = "9999999999"
Dim i As Long = CLng(str)
Dim str As String = "9999999999"
Dim i As Decimal = CDec(str)

関連記事