VB.NET 文字列を数値に変換する方法
VB.NET
でString
型の文字列を数値に変換する方法を紹介します。
以下の例では、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.NET
のInteger
型の精度は-2147483648 ~ 2147483647
です。
そのため、例えば9999999999
という文字列をCInt("9999999999")
のように数値型に変換しようとするとエラーが発生します。
上記で紹介したIsNumeric
関数では9999999999
は数値に変換可能なため、Integer
型の変数に変換可能かどうかのチェックを別途行う必要があります。
Integer
に変換可能かどうかを判定する方法はVB.NET Integerに変換可能かどうかを判定するで紹介しています。
Integer以外の数値型に変換
大きな数値を扱う場合はLong
やDecimal
を使用することが多いです。
型変換にはそれぞれCLng
とCDec
を使用します。
Dim str As String = "9999999999"
Dim i As Long = CLng(str)
Dim str As String = "9999999999"
Dim i As Decimal = CDec(str)