将int转换为带填充零的字符串?

在C#中我有一个整数值需要传递到字符串,但它需要添加零之前:

例如:

int i = 1; 

当我把它转换成字符串时,它需要变成0001

我需要知道C#中的语法。

i.ToString().PadLeft(4, '0') – 好吧,但不适用于负数
i.ToString("0000"); – 明确的形式
i.ToString("D4"); – 短格式说明符

 i.ToString("D4"); 

请参阅格式说明符上的MSDN 。

这是一个很好的例子:

 int number = 1; //D4 = pad with 0000 string outputValue = String.Format("{0:D4}", number); Console.WriteLine(outputValue);//Prints 0001 //OR outputValue = number.ToString().PadLeft(4, '0'); Console.WriteLine(outputValue);//Prints 0001 as well 

您可以使用:

 int x = 1; x.ToString("0000"); 
 i.ToString("0000"); 

C#6.0风格的字符串插值

 int i = 1; var str1 = $"{i:D4}"; var str2 = $"{i:0000}"; 

你也可以使用扩展

写一个静态扩展类,并简单地使用它:

 public static class Extensions { public static string IntToStringWithLeftPad(this int number) { return number.ToString("D4"); } } 

并使用它像:

  int i = 3; string padStr = i.ToStringWithLeftPad(); 
 int p = 3; // fixed length padding int n = 55; // number to test string t = n.ToString("D" + p); // magic Console.WriteLine("Hello, world! >> {0}", t); // outputs: // Hello, world! >> 055 

填充int i匹配int x的字符串长度,当两者都可以为负时:

 i.ToString().PadLeft((int)Math.Log10(Math.Abs(x < 0 ? x * 10 : x)) + 1, '0') 

在这里,我想我的不限制在4位,如果它是1它应该显示为0001,如果它11应显示为0011 ..以下是代码。

  reciptno=1;//Pass only integer. string formatted = string.Format("{0:0000}", reciptno); TxtRecNo.Text = formatted;//Output=0001.. 

我实现了这个代码来生成收据没有PDF格式。