如何用前导零填充整数?

时间:2014-02-10 09:37:57

标签: c#

我有正在转换的字符串,需要四个字符 长。这些值的长度为0到4个字符。 我需要用零填充字符串以使所有ID长4个字符:

实施例

输入数字需要

1  => 0001
121 => 0121
0567 => 0567

到目前为止,我已经尝试过:

int temCode = 0; 
DataTable dt = objSites.Get_Max_SiteCode();
if (dt.Rows.Count > 0)
{ 
     string siteCode = dt.Rows[0]["SiteCode"].ToString();
     string code = siteCode.Substring(siteCode.Length - 4);
     temCode = Convert.ToInt32(code) + 1;
     temCode.ToString().PadLeft(4, '0'); // same number is coming here without any pad left.
}

5 个答案:

答案 0 :(得分:3)

你不是结果为PadLeft的任何事情 - 但你无论如何也不需要这样做。您只需在ToString调用中指定位数(和格式):

string result = temCode.ToString("d4");

答案 1 :(得分:2)

问题在于:

  • .ToString()
  • .PadLeft(...)

所有返回 new 字符串,它们不会以任何方式修改您调用方法的对象。

请注意, 将结果放入字符串中。整数值不具有填充的任何概念,因此整数值0010与整数值10相同。

所以试试这个:

string value = temCode.ToString().PadLeft(4, '0');

或者你可以使用它:

string value = temCode.ToString("d4");

或者这个:

string value = string.Format("{0:0000}", temCode);

答案 2 :(得分:1)

您可以将数字格式化为您选择的长度。说code.ToSting("0000")

using System.IO;
using System;

class Program
{
    static void Main()
    {
       int i =30;
       String strI = i.ToString("0000");
       Console.WriteLine(strI);
    }
}

答案 3 :(得分:0)

只需使用string.padleft。

例如:

int i = 100;
int length = 4;

string intString = i.ToString().PadLeft(length, '0');

答案 4 :(得分:0)

当涉及整数值000001 = 1.因此,您将无法将带有前导零的整数作为数值。它需要存储为字符串。所以......

var foo = 1;
var formatted = foo.ToString().PadLeft(5, '0');