关于c#:如何将数字格式化为带前导零的字符串?

How can I format a number into a string with leading zeros?

我有一个数字需要转换成字符串。首先我用这个:

1
Key = i.ToString();

但我意识到它是按照一个奇怪的顺序排序的,所以我需要用零填充它。我怎么能这样做?


而简单的。

1
Key = i.ToString("D2");

D停止"十进制数"、"2两位数号码打印。


看到C字符串格式编排的# example of辨别一些格式的字符串。

我以一个更好的格式编排国际学院

1
String.Format("{0:00000}", 15);          //"00015"

使用字符串或插值。

1
$"{15:00000}";                           //"00015"


如果你想保持固定宽度,例如,10位,这样做的

1
Key = i.ToString("0000000000");

replace with AA AA多位你喜欢的。

然后将结果的i = 123Key ="0000000123"


由于有上述的这个人,然而,如果你是用C # 6或以上版本(例如Visual Studio 2015年),那么你可以使用字符串插值两种简化你的代码。而不是使用string.Format(...)婊子,你只是这样做:

1
Key = $"{i:D2}";

使用:

1
i.ToString("D10")

看到int32.tostring(MSDN),与标准数字格式字符串(MSDN)。

String.PadLeft或使用。例如,

1
2
int i = 321;
Key = i.ToString().PadLeft(10, '0');

0000000321会有结果的。虽然我不String.PadLeft工作负数。

看到string.padleft(MSDN)。


通常,string.format("格式",两个对象)的冰preferable object.tostring("格式")。因此,

1
String.Format("{0:00000}", 15);

preferable两个冰淇淋,

1
Key = i.ToString("000000");


试试:

1
Key = i.ToString("000000");

道贺,但我看到的,如果你不能直接在黑色的整数,而不是字符串表示的。


在这里,我想我的两个限制在4号位是1样,如果它应该显示为11吨,如果它时它应该显示为..below是代码。

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

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

        TxtRecNo.Text = formatted;//Output=0001..

在这两个implemented Code Generate收据没有钱。


1
2
int num=1;
string number=num.ToString().PadLeft(4, '0')

输出="00001"

编辑:换了两个匹配的padleft数量


interpolated:对。

1
$"Int value: {someInt:D4} or {someInt:0000}. Float: {someFloat: 00.00}"