C#中的Int.Parse抛出格式异常

时间:2012-08-09 06:12:39

标签: c# c#-4.0

  

可能重复:
  C# int.parse issue with leading zeros

如何将其更正为带有前导零的int。实际上需要忽略/删除FormatException。

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

6 个答案:

答案 0 :(得分:4)

它在我的系统上运行正常。

enter image description here

问题可能在于当前的文化,你可以尝试

string value = "055";
int x = int.Parse(value, CultureInfo.InvariantCulture);

答案 1 :(得分: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.

答案 2 :(得分:1)

使用Int32.TryParse

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

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

我已经测试过,x得到了55,如果声明,它会进入内部。

答案 3 :(得分:0)

试试这个..

int x = int.parse(value.TrimStart('0'));

答案 4 :(得分:0)

如果您不确定是否可以解析

,则应尝试使用TryParse

其他尝试

int.Parse(value,CultureInfo.InvariantCulture);

如果前导零实际上是一个问题(请检查您是否可以int.Parse("0")),那么它可能是一个不同的问题explained here : localization components of Windows (not .NET)

答案 5 :(得分:0)

前导零是C变量实际上意味着一个数字应该被解释为八进制,我很惊讶.net抛出异常>

无论如何

value.TrimStart('0');