1

可能重复:
带有前导零的 C# int.parse 问题

我如何将其纠正为带有前导 Zeroes 的 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 变体实​​际上意味着一个数字应该被解释为八进制,我很惊讶 .net 抛出异常>

在任何情况下

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