カンマ区切り形式の数値文字列から数値に変換するには、
.Parseメソッドに適切なNumberStylesを指定すればOKです。
サンプル
例1)カンマ区切り形式の数値文字列から数値(int)に変換する
using System.Globalization;
// int型に変換
string str = "1,234,567";
int resultInt = int.Parse(str, NumberStyles.AllowThousands);
Console.WriteLine(result);
→ 1234567
マイナス値も許可したい場合は以下のようになります。
using System.Globalization;
// int型に変換(マイナス値も許可する)
string str = "-1,234,567";
int resultInt = int.Parse(str,
NumberStyles.AllowThousands | NumberStyles.AllowLeadingSign);
Console.WriteLine(result);
→ -1234567
例2)カンマ区切り形式の数値文字列から数値(double)に変換する
using System.Globalization;
// double型に変換
string str = "1,234,567.89";
double resultDbl = double.Parse(str,
NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint);
Console.WriteLine(resultDbl);
→ 1234567.89
マイナス値も許可したい場合は以下のようになります。
using System.Globalization;
// double型に変換(マイナス値も許可する)
string str = "-1,234,567.89";
double resultDbl = double.Parse(str,
NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint |
NumberStyles.AllowLeadingSign);
Console.WriteLine(resultDbl);
→ -1234567.89
NumberStylesの種類
NumberStylesには以下のような種類があります。
種類 | 意味 |
---|---|
NumberStyles.AllowThousands | 数値の区切りを許可する (一般的にはカンマ) |
NumberStyles.AllowLeadingSign | 先頭の符号を許可する (+、-) |
NumberStyles.AllowDecimalPoint | 小数点を許可する |
NumberStyles.AllowCurrencySymbol | 通貨記号を許可する |
NumberStyles.AllowExponent | 指数表記を許可する |
NumberStyles.AllowHexSpecifier | 16進数表記を許可する |
上記は主要なもののみです。
備考
- 変換できない文字列が指定された時は、System.FormatException例外が発生します。
- 共通関数化したものは、以下関連記事をご覧ください。