私は時々、1,500
そして、これをIntに変換する必要があります。現在例外がスローされています。誰かがこれを修正する方法を教えてくれます。
int.Parse
および NumberStyles.AllowThousands
フラグ:
int num = int.Parse(toParse, NumberStyles.AllowThousands);
または int.TryParse
操作が成功したかどうかを知らせます:
int num;
if (int.TryParse(toParse, NumberStyles.AllowThousands,
CultureInfo.InvariantCulture, out num))
{
// parse successful, use 'num'
}
Decimal.Parse()
を使用してから、結果をint
にキャストできます。これは現在のカルチャでも機能しますが、使用するCultureInfo
を指定することもできます。すべてが.NETに組み込まれているコンマ、小数点などを手動で処理する必要はありません。
コンマを削除するという総当たりの提案は何ですか??文字列が「1,1,1」のような場合はどうなりますか?これは有効な番号ですか?コンマを削除すると、有効な数値になり、変換が意味的に正しくなくなります。
NumberStylesが存在する理由があり、Int.Parse()メソッドは数値スタイルを考慮して、または考慮せずに解析できます。
Intに変換する前にreplace(';', '')
を実行できます。
さまざまな国のルールを心配する必要がない場合(たとえば、一部の桁区切り記号の代わりにコンマを小数点位置として使用する場合)、コンマを最初に削除します。
例えば
string nastyNumber = "1,234";
int result = int.Parse(nastyNumber.Replace(",", ""));
(浮動小数点が必要な場合は、intをdoubleに置き換えます)
コードを使用できます
int num = Strings.Replace(str, ",", string.Empty);
これにより、 "、"のすべての出現が ""(空の文字列)に置き換えられます。 1,000,000回が1000000回
Convert.ToInt32()
を呼び出す前にコンマを_String.Empty
_で置き換えるか、Int32.Parse()
またはInt32.TryParse()
を_NumberStyles.AllowThousands
_とともに使用してパラメーター。