可能重复:
带有前导零的 C# int.parse 问题
我如何将其纠正为带有前导 Zeroes 的 int。实际上需要忽略/删除 FormatException。
string value = "055";
int x = int.Parse(value);
可能重复:
带有前导零的 C# int.parse 问题
我如何将其纠正为带有前导 Zeroes 的 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 变体实际上意味着一个数字应该被解释为八进制,我很惊讶 .net 抛出异常>
在任何情况下
value.TrimStart('0');