vb.net型変換
vb.net型変換
CTyep/CIntは使わない方が良い。vb関数だから
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Parseメソッドを使って、文字列を数値に変換する
文字列(String型)を数値(Integer、Long、Single、Double型など)に変換する。
大抵の場合、Parseメソッドを使うことにより、簡単に変換できます。
'文字列をInteger型に変換
Dim i As Integer = Integer.Parse("100")
'文字列をLong型に変換
Dim l As Long = Long.Parse("100")
'文字列をSingle型に変換
Dim f As Single = Single.Parse("100.1")
'文字列をDouble型に変換
Dim d As Double = Double.Parse("100.1")
'文字列をBoolean型に変換
Dim b As Boolean = Boolean.Parse("True")
数値を文字列に変換する
数値を文字列に変換するには、ToStringメソッドを使用します。
Dim s As String
'Integer型を文字列に変換
Dim i As Integer = 100
s = i.ToString()
'Long型を文字列に変換
Dim l As Long = 100L
s = l.ToString()
'Single型を文字列に変換
Dim f As Single = 100.1F
s = f.ToString()
'Double型を文字列に変換
Dim d As Double = 100.1
s = d.ToString()
'Boolean型を文字列に変換
'sは"True"となる
Dim b As Boolean = True
s = b.ToString()
-----------------------------
Convertクラスによるデータ型の変換
全般的なデータ型の変換には、Convertクラスを使っても行えます。
Dim s As String
Dim i As Integer = 100
'Integer型を文字列に変換
s = Convert.ToString(i)
'文字列をInteger型に変換
i = Convert.ToInt32(s)
Dim d As Double = 1.23
'Double型を文字列に変換
s = Convert.ToString(d)
'文字列をDouble型に変換
d = Convert.ToDouble(s)
Dim m As Decimal = 100
'Decimal型を文字列に変換
s = Convert.ToString(m)
'文字列をDecimal型に変換
m = Convert.ToDecimal(s)
-------------------------
VB.NETでは、CStr関数やCInt関数などのデータ型変換関数を使うことで、文字列と数値の変換を行うことができます。
VB.NETでは、これらの関数を使うと、パフォーマンスが向上することがあります。
また、Val関数で文字列を数値に、Str関数やFormat関数で数値を文字列に変換することもできます。
Dim s As String
Dim i As Integer = 100
'Integer型を文字列に変換
s = CStr(i)
'文字列をInteger型に変換
i = CInt(s)
また、CType関数を使っても同様の変換ができます。
Dim s As String
Dim i As Integer = 100
'Integer型を文字列に変換
s = CType(i, String)
'文字列をInteger型に変換
i = CType(s, Integer)
------------------------------------
Parse、ToStringメソッドとConvertクラスの違い
オブジェクトのParseまたはToStringメソッドを使って変換する方法と、Convertクラスの静的メソッドを使って変換する方法の一番の違いは、null(VB.NETではNothing)を変換できるか、できないかです。まずは次の例をご覧ください。
Dim str As String = Nothing
'Convert.ToInt32メソッドを使う
'結果は、0となる
Dim i1 As Integer = Convert.ToInt32(str)
'int.Parseメソッドを使う
'ArgumentNullExceptionがスローされる
Dim i2 As Integer = Integer.Parse(str)
このようにnull(VB.NETではNothing)をConvert.ToInt32メソッドに渡してもエラーとならずに0を返しますが、int.Parseメソッドにnullを渡すと例外ArgumentNullExceptionがスローされて失敗します。