如何将其更正为带有前导零的int。实际上需要忽略/删除FormatException。
string value = "055";
int x = int.Parse(value);
答案 0 :(得分:4)
它在我的系统上运行正常。
问题可能在于当前的文化,你可以尝试
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');