将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格式。