添加0如果数字小于10

Pet*_*ter 3 .net c# formatting

可能重复:
2#char int上的C#int ToString格式?

对不起简单,但这个是我的意思.几乎我有36个记录的列表,如果id小于10,我需要它返回01,02,03 ... 09,而不是1,2,3 ... 9.

这是我到目前为止的代码,我认为这将有效.这是C#.NET:

for (int i = 1; i <= 36; i++)
{
    if (i.ToString().Length == 1)
    {
        i.ToString().PadLeft(2,'0');
    }

    Response.Write("Test: " + i);
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,提前谢谢!

Caf*_*eek 14

您的问题i仍然是整数,需要将其分配给字符串

  for (int i = 1; i <= 36; i++)
    {
        var iString = i.ToString();

        if(iString.Length == 1)
        {
            iString = iString.PadLeft(2,'0'); //RIGHT HERE!!!
        }
        Response.Write("Test: " + iString);
    }
Run Code Online (Sandbox Code Playgroud)

但是,这些代码中的大部分都是超级代码,if不需要声明.Pad只会使用零到达给定的长度(2).如果它已经是2个或更多字符长,它将不会填充任何内容.你只需要这个

    for (int i = 1; i <= 36; i++)
    {
        var iString = i.ToString().PadLeft(2,'0');
        Response.Write("Test: " + iString);
    }
Run Code Online (Sandbox Code Playgroud)

就此而言,不再需要变量.

    for (int i = 1; i <= 36; i++)
    {
        Response.Write("Test: " + i.ToString().PadLeft(2,'0'));
    }
Run Code Online (Sandbox Code Playgroud)

如果你一直用零填充,而不是其他角色,你可以这样做

    for (int i = 1; i <= 36; i++)
    {
        Response.Write("Test: " + i.ToString("00"));
    }
Run Code Online (Sandbox Code Playgroud)

你应该养成使用的习惯 string.Format

    for (int i = 1; i <= 36; i++)
    {
        Response.Write(string.Format("Test: {0}", i.ToString("00")));
    }
Run Code Online (Sandbox Code Playgroud)

  • 一个downvote?你在开玩笑吧. (3认同)

Alb*_*eón 9

你不需要IF,使用ToString

int i = 5;

i.ToString("00"); //returns 05
Run Code Online (Sandbox Code Playgroud)