关于格式化:C#将int转换为带有填充零的字符串?

C# convert int to string with padding zeros?

在C中,我有一个整数值,需要转换为字符串,但它需要在以下时间之前加零:

例如:

1
int i = 1;

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

我需要知道C中的语法。


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


1
i.ToString("D4");

请参阅有关格式说明符的msdn。


以下是一个很好的例子:

1
2
3
4
5
6
7
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

你可以使用:

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


C 6.0型字符串插值

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

1
i.ToString("0000");


简单地

1
2
int i=123;
string paddedI = i.ToString("D4");


易舍

1
2
int i = 1;
i.ToString("0###")


1
2
3
4
5
6
7
8
9
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

在这里我想用4位数字填充我的号码。例如,如果它是1,那么应显示为0001,如果为11,则应显示为0011。

下面是实现这一点的代码:

1
2
3
4
5
reciptno=1; // Pass only integer.

string formatted = string.Format("{0:0000}", reciptno);

TxtRecNo.Text = formatted; // Output=0001

我实现了这个代码来为一个PDF文件生成货币收据编号。


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

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