1

重複の可能性:
先行ゼロに関する C# int.parse の問題

これを int として先頭にゼロを付けて修正するにはどうすればよいですか。実際には、FormatException を無視/削除する必要があります。

string value = "055";
int x = int.Parse(value);
4

6 に答える 6

4

私のシステムでは問題なく動作します。

ここに画像の説明を入力

おそらく問題は現在の文化にあります。

string value = "055";
int x = int.Parse(value, CultureInfo.InvariantCulture);
于 2012-08-09T06:16:03.657 に答える
2

これを試して:

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.
于 2012-08-09T06:16:56.697 に答える
1

使用するInt32.TryParse

string value = "055";
int x = 0;

if(int.TryParse(value, out x))
{
    //use x
}

テストしたところ、x は 55 になり、if ステートメント内に入ります。

于 2012-08-09T06:14:17.787 に答える
0

これを試してみてください..

int x = int.parse(value.TrimStart('0'));
于 2012-08-09T06:14:47.703 に答える
0

TryParse解析できるかどうかわからない場合は、使用してみてください

そうでなければ試してください

int.Parse(value,CultureInfo.InvariantCulture);

先行ゼロが実際に問題である場合 (実行できるかどうかを確認してくださいint.Parse("0"))、別の問題である可能性があります。これについては、ここで説明されています: Windows のローカリゼーション コンポーネント (.NET ではありません)

于 2012-08-09T06:17:24.320 に答える
0

先頭のゼロは C バリアントです。実際には、数値を 8 進数として解釈する必要があることを意味します。.net が例外をスローすることに驚いています>

いずれにしても

value.TrimStart('0');
于 2012-08-09T06:20:11.440 に答える