强制整数至少为2位数

时间:2010-08-30 19:47:20

标签: c# vb.net

有人可以给我代码来执行以下操作....

如果整数是1-9则显示字符串01,02,03等..如果10或以上则保持原样。

string display = yourInt.ToString("00"); 

不工作

6 个答案:

答案 0 :(得分:53)

string display = yourInt.ToString("00");

答案 1 :(得分:13)

或者,使用String.Format语法(例如,在Console.WriteLine中使用)

string s = String.Format("{0:00}", yourInt);

答案 2 :(得分:3)

我不明白为什么.ToString("00")不起作用。这个测试成功了......

    [TestMethod]
    public void RightPadIntegersWithZero()
    {
        var values = new[] { -100, -20, -1, 0, 1, 5, 10, 100, 567 };
        var expecteds = new[] { "-100", "-20", "-01", "00", "01", "05", "10", "100", "567" };

        for (var i = 0; i < values.Length; i++)
        {
            var value = values[i];
            var expected = expecteds[i];

            var result = value.ToString("00");
            Assert.AreEqual(expected, result);
        }
    }

您必须做的事与您的问题所描述的不同

答案 3 :(得分:1)

在任何语言中(至少我所知道的)和整数值类型在2以下的任何值中都不会有10个数字长度。

要始终以两位数长度显示(020512),您必须将您的数字转换为字符串,然后padding将其转换为{{ 1}}。

或者你会评价它:

0

如您所见,您必须在显示之前将其转换为字符串...

答案 4 :(得分:0)

你的问题有点模棱两可:把它显示在哪里?

无论如何,您可能希望查看String.Format

答案 5 :(得分:0)

这会做你想要的吗?

for (int i = -20; i < 100; i++)
{
 string s = i.ToString();
 while (s.Length < 2) s = "0" + s;
 Console.WriteLine(s);
}

我意识到这是一种蛮力方法,如此处所写。但如果它成功了,你可以使用可重复使用的字符数组来优化它,而不是附加字符串。