如何将字符串“001”转换为int 001

时间:2010-01-12 14:57:18

标签: c#

如何将字符串“001”转换为int 001?使用Convert.ToInt32()方法或Int32.Parse()方法将结果仅为1

8 个答案:

答案 0 :(得分:13)

你怎么能把001作为001呢?您可以将其格式化为带有前导零的字符串,但int本身只是一个数字表示。请记住,语言需要一种方法来将int表示为一系列字符,并且它需要是确定性的(因为否则它将无法选择)。所以标准是不显示任何前导零。

答案 1 :(得分:9)

你不能在前面加上int这样的零 - 没有多大意义。如果格式很重要,您只需将其保留为string

答案 2 :(得分:7)

你的问题存在根本性的误解。 int是一个数字,在我们的数字系统中,小数点左边的前导零不会改变数字,因此无关紧要。换句话说,1等于01等于001等于0001等等......这看似显而易见,但它表明1是整数值。 001是一个字符串。

答案 3 :(得分:7)

1是整数,001是字符串。如果您尝试将3位数字系列显示为id或类似物并且正在递增,则需要将字符串“001”转换为整数,然后将其递增,然后将其转换回“0”填充字符串以供显示。

public string NextId(string currentId)
{
    int i = 0;
    if (int.TryParse(currentId, out i))
    {
        i++;
        return(i.ToString().PadLeft(3,'0'));
    }
    throw new System.ArgumentException("Non-numeric string passed as argument");
}

答案 4 :(得分:1)

整数不能存储值001.结果1是正确的。

答案 5 :(得分:1)

您需要详细说明为什么需要其他零。

虽然在字节形式中它将具有沿001(或0000000000000001)的行的表示,但运行时不知道您要在哪个基数中表示数字,因此第2和第3列(其他两个零)很暧昧。

答案 6 :(得分:0)

int永远不会以'0'开头,只能使用字符串。

答案 7 :(得分:0)

您可以使用Int32.ToString("000")以这种方式格式化整数。

string one = a.ToString("000"); // 001
string two = b.ToString("000"); // 010

但你不能像整数001一样使用。