重複の可能性:
先行ゼロに関する C# int.parse の問題
これを int として先頭にゼロを付けて修正するにはどうすればよいですか。実際には、FormatException を無視/削除する必要があります。
string value = "055";
int x = int.Parse(value);
重複の可能性:
先行ゼロに関する C# int.parse の問題
これを int として先頭にゼロを付けて修正するにはどうすればよいですか。実際には、FormatException を無視/削除する必要があります。
string value = "055";
int x = int.Parse(value);
私のシステムでは問題なく動作します。
おそらく問題は現在の文化にあります。
string value = "055";
int x = int.Parse(value, CultureInfo.InvariantCulture);
これを試して:
string value = "055";
int x;
if (int.TryParse(value, NumberStyles.Number, CultureInfo.InvariantCulture,out x ))
{
//use x
}
//use x ; x will be zero if it fails parsing.
使用するInt32.TryParse
string value = "055";
int x = 0;
if(int.TryParse(value, out x))
{
//use x
}
テストしたところ、x は 55 になり、if ステートメント内に入ります。
これを試してみてください..
int x = int.parse(value.TrimStart('0'));
TryParse
解析できるかどうかわからない場合は、使用してみてください
そうでなければ試してください
int.Parse(value,CultureInfo.InvariantCulture);
先行ゼロが実際に問題である場合 (実行できるかどうかを確認してくださいint.Parse("0")
)、別の問題である可能性があります。これについては、ここで説明されています: Windows のローカリゼーション コンポーネント (.NET ではありません)
先頭のゼロは C バリアントです。実際には、数値を 8 進数として解釈する必要があることを意味します。.net が例外をスローすることに驚いています>
いずれにしても
value.TrimStart('0');