[UiPath Studio]StringからIntegerへ型変換

UiPath Studioで開発をしていく際に、String型からInteger型への型変換で悩んだことがありました。
以下は自分への備忘録という意味も込めて、まとめています。

なお、○○アクティビティと何回も書くと自分が読みづらくなってしまうため、
本記事はアクティビティ名を隅付き括弧【】で囲んでいます。

#記載している方法
本記事では以下の4つの方法を記載しています。

1. CInt
2. Integer.Parse
3. Convert.ToInt32
4. Integer.Tryparse

1～3は【代入(Assign)】で使用できます。
4は【メソッドを呼び出し(Invoke Method)】または【コードを呼び出し(Invoke Code)】で使用できます。

#変換結果
それぞれの変換結果は以下になります。
なお、TryParseはInteger型への変換に失敗しても、エラーとなりません。

| メソッド名 | 整数 | カンマを含む数値 | 小数点を含む数値 | 文字列 |
| :---: | :---: | :---: | :---: | :---: |
| CInt | ○| ○ | ○(※) | エラー |
| Integer.Parse | ○ | エラー | エラー | エラー |
| Convert.ToInt32 | ○ | エラー | エラー | エラー |
| Integer.Tryparse | ○ | ✕ | ✕ | ✕ |

(※)CIntは四捨五入ではないため注意が必要です。
詳しくは後述します。

#CInt/Parse/Convert.ToInt32
CInt/Parse/Convert.ToInt32は【代入(Assign)】で使用できます。
以下に使用した結果を記載していきます。

####整数の変換

```VB.net:整数
変数1 = CInt("10")
変数2 = Integer.Parse("10")
変数3 = Convert.ToInt32("10")
```

* ログ<br>
![整数.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1846742/739f9fa1-66ce-97cc-20ae-2f3ae7e1a23d.png)

####カンマを含む数値の変換

```VB.net:カンマを含む数値
変数1 = CInt("1,000")
変数2 = Integer.Parse("1,000")
変数3 = Convert.ToInt32("1,000")
```

* ログ<br>
![カンマを含む数値.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1846742/a5db3d06-63f1-c626-3733-85b4dbec59a7.png)

####小数点を含む数値の変換

```VB.net:小数点を含む数値
変数1 = CInt("10.0")
変数2 = Integer.Parse("10.0")
変数3 = Convert.ToInt32("10.0")
```

* ログ<br>
![小数点を含む数値_10.0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1846742/0e69a640-380e-5e02-f56e-258ca8f1b2d3.png)

ただし、CInt関数は四捨五入ではありません。
CIntは最も近い整数に値を丸めますが、小数部分が0.5の時の場合は最も近い偶数に値を丸めます。

* ログ(3.5の場合/4.5の場合)<br>
![小数点を含む数値_3.5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1846742/122a8f14-295f-3613-5ecd-e14a62072e38.png) ![小数点を含む数値_4.5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1846742/c90b4082-237d-47ae-8bcc-00bd530f082a.png)


#Integer.Tryparse
Integer.Tryparseは【メソッドを呼び出し(Invoke Method)】または【コードを呼び出し(Invoke Code)】で使用できます。

####【メソッドを呼び出し(Invoke Method)】
下図のようにプロパティを指定します。
![TryParse_InvokeMethod_アクティビティ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1846742/2ec99c2f-662a-e054-5886-68b74aff396d.png)

プロパティウィンドウの「…」をクリックし、パラメーターウィンドウを表示します。
「方向」「型」は下図の通り、「値」はコード内で定義している変数を指定します。
![TryParse_InvokeMethod_パラメーター.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1846742/ad70a306-8f58-bc92-d466-e750a5ef58fb.png)

* ログ(整数/カンマを含む数値/小数点を含む数値/文字列)<br>
![TryParse_InvokeMethod_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1846742/c69e916b-3189-40b7-350e-b119d9ae1b42.png)<br>
![TryParse_InvokeMethod_1,000.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1846742/97e9864b-49c2-fc9a-e2bd-cb99555ba254.png)<br>
![TryParse_InvokeMethod_10.0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1846742/d6f55da7-27c2-c0bf-7273-1ef2324cae62.png)<br>
![TryParse_InvokeMethod_aaa.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1846742/73ec24b6-1ff7-60c0-283c-41fe3993940c.png)<br>

####【コードを呼び出し(Invoke Code)】
下図のようにプロパティを指定します。
コード引数の「方向」「型」は下図の通り、「値」はコード内で定義している変数を指定します。
「名前」はコードエディターで使用する変数名を設定します。
![TryParse_InvokeCode.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1846742/9f918289-958f-4ec7-7114-58d8787d137c.png)

* ログ(整数/カンマを含む数値/小数点を含む数値/文字列)<br>
![TryParse_InvokeCode_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1846742/623d2fcf-2b5b-38d8-78e1-20a10a4f8592.png)<br>
![TryParse_InvokeCode_1,000.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1846742/282b4f8e-ef5c-d208-c576-9b4f3acfe9e7.png)<br>
![TryParse_InvokeCode_10.0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1846742/a0e24d8c-1901-d8b7-899c-ab56c02b46bc.png)<br>
![TryParse_InvokeCode_aaa.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1846742/38387ee1-249e-87a7-2938-c338e200472d.png)<br>


以上です。