朧研究所(おぼろけんきゅうじょ)

日々の買ったもの、考えたこと、調べたこと、便利なもの、おでかけ、プログラムを書いていきます。

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メソッドを使用します。

VB.NET

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がスローされて失敗します。