鈴鹿の住処

■UiPath Tips■

更新日:  作成日:

文字列を数値に変換する

■はじめに

UiPath Studio で VB.Net の関数を使って、文字列を数値に変換する方法を紹介します。

Integer.Parse 関数や CInt 関数などで、文字列を数値型(Int32)に変換できます。

文字列から小数(Double)に変換するには、Double.Parse 関数や CDbl 関数を使用します。
使い方は Integer.Parse 関数や CInt 関数と同じです。

Val 関数を使用しても、文字列を数値に変換できます。
Val 関数は、文字列の先頭にある数字を数値に変換します。また、変換できない時には、「0」を返してエラーは発生しません。
なお、戻り値はDouble型になります。

VB.Net のメソッドや関数は、代入や条件分岐のアクティビティなどの VB の式を入力する欄で使用することができます。

メソッド、関数の使い方画像

■関数の引数と戻り値

整数(Int32)への変換

Integer.Parse(文字列)
Int32.Parse(文字列)
CInt(文字列)
文字列を整数(Int32)に変換します。

引数「文字列」・・・文字列を指定します。
戻り値の型・・・数値型(Int32)

小数(Double)への変換

Double.Parse(文字列)
CDbl(文字列)
文字列を小数(Double)に変換します。

引数「文字列」・・・文字列を指定します。
戻り値の型・・・数値型(Double)

数値(Double)への変換

Val(文字列)
文字列を数値(Double)に変換します。

引数「文字列」・・・文字列を指定します。
戻り値の型・・・数値型(Double)

■解説

Int32.Parse 関数と Integer.Parse 関数はどちらを使用しても同じ結果が得られます。

Integer.Parse 関数と CInt 関数の違いは、変換に失敗した場合に返ってくるエラーになります。
Integer.Parse 関数は、変換に失敗した場合に ArgumentNullException 、 FormatException または OverflowException がスローされます。
CInt 関数は、変換に失敗した場合には Exception 、 OverflowException がスローされます。

Double.Parse 関数だと、カンマ区切りの数字も変換することができます。

変換できるかどうかは、「TryParse 関数」で判定できます。

全角数字の文字列を数値に変換するには、「StrConv 関数」で数値に変換する前に全角から半角に変換することで、数値に変換することができます。

CInt 関数の特徴

・"1,234" のように、カンマ区切りの数字を変換できます。
・変換する値が Null だとエラーは発生せず、0 が返ってきます。
・小数だとで偶数丸めされて、整数値に変換されます。

※偶数丸めとは、端数が 0.5 より小さいなら切り捨て、0.5 より大きいなら切り上げ、
 ちょうど 0.5 なら切り捨てと切り上げのうち結果が偶数となる方へ丸められることです。
 偶数.5 なら切り捨て、奇数.5 なら切り上げとなります。
<例>0.5 ⇒ 0 、 1.5 ⇒ 2 、 2.5 ⇒ 2 、 3.5 ⇒ 4

Val 関数の特徴

・"1,234" のようにカンマ区切りの数字は、カンマの前の数字のみが変換されます。
・"12あいう"のように、先頭が数字であれば、その数字のみが変換されます。
・数値に変換できない値は「0」に変換されます。エラーは発生しません。
・空白が含まれていても、空白を削除してから変換されます。

■使用例

Integer.Parse 関数やCInt 関数、Val 関数の使用例を紹介します。

数値に変換する
            
  変数 i の型は Int32
  i = Integer.Parse("123")     123
  i = Integer.Parse("123 ")    123
  i = Integer.Parse("12.345")  FormatException
  i = Integer.Parse("1 23")    FormatException
  i = Integer.Parse("123")  FormatException
  i = Integer.Parse("123 ")   FormatException
  i = Integer.Parse("100円")   FormatException
  i = Integer.Parse("\100")    FormatException
  i = Integer.Parse("1,200")   FormatException
  i = Integer.Parse(Null)      ArgumentNullException
  i = Integer.Parse("2147483648")  OverflowException

  i = CInt("123")     123
  i = CInt("123 ")    123
  i = CInt("12.345")  12
  i = CInt("1 23")    Exception
  i = CInt("123")  Exception
  i = CInt("123 ")   Exception
  i = CInt("100円")   Exception
  i = CInt("\100")    Exception
  i = CInt("1,200")   1200
  i = CInt(Null)      0
  i = CInt("2147483648")  OverflowException

  変数 d の型は Double
  d = Val("123")      123
  d = Val("123 ")     123
  d = Val("12.345")   12.345
  d = Val("1 2 3 ")  123
  d = Val("123")   0
  d = Val("123 ")    123
  d = Val("100円")    100
  d = Val("\100")     0
  d = Val("1,200")    1
  d = Val(Null)       0
  d = Val("abc12")    0
  d = Val("123ab")    123
  d = Val(" ")        0
  d = Val("2147483648")  2147483648
            
          
数値に変換できるか判定する

TryParse 関数」を使用して、変換できるか判定できます。

・整数に変換できるか判定

Integer.TryParse(文字列, 変数)
文字列がInt32型に変換ができるかどうかをBooleanで返します。

引数「文字列」・・・変換を行う文字列を指定します。
引数「変数」 ・・・Int32型の変数を指定します。
戻り値の型・・・ブール型(Boolean)

・小数に変換できるか判定

Double.TryParse(文字列, 変数)
文字列がDouble型に変換ができるかどうかをBooleanで返します。

引数「文字列」・・・変換を行う文字列を指定します。
引数「変数」 ・・・Double型の変数を指定します。
戻り値の型・・・ブール型(Boolean)

下の画像では、条件分岐で変数 text が整数に変換できる場合のみ、変換して変数 num に代入します。
変数 num の型は、Int32 にしています。
カンマ区切りの数字、 Null は戻り値が False となります。

TryParse 関数の使い方画像