我怎样才能将数字格式化为前导零的string?
我有一个数字,我需要转换为一个string。 首先我用这个:
Key = i.ToString();
但是我意识到这是按照奇怪的顺序sorting的,所以我需要用零填充它。 我怎么能这样做?
相当简单:
Key = i.ToString("D2");
D
代表“十进制数”, 2
代表要打印的位数。
有关String.Format的一些示例用法,请参阅C#中的string格式
其实是一个更好的格式化int的例子
String.Format("{0:00000}", 15); // "00015"
如果你想保持它像这样固定10位数字
Key = i.ToString("0000000000");
用你喜欢的数字replace尽可能多的数字。
123
i
将导致Key
为0000000123
。
由于没有人提到过,如果您使用的是C#版本6或更高版本(即Visual Studio 2015),则可以使用string插值来简化代码。 所以,而不是使用string.Format(...)
,你可以这样做:
Key = $"{i:D2}";
使用:
i.ToString("D10")
请参阅Int32.ToString (MSDN)和标准数字格式string (MSDN)。
或者使用String.PadLeft
。 例如,
int i = 321; Key = i.ToString().PadLeft(10, '0');
会导致0000000321
。 虽然String.PadLeft
不适用于负数。
请参阅String.PadLeft (MSDN)。
通常String.Format(“format”,object)优于object.ToString(“format”)。 因此,
String.Format("{0:00000}", 15);
优于,
Key = i.ToString("000000");
尝试:
Key = i.ToString("000000");
就个人而言,虽然,我会看到,如果你不能直接sorting整数,而不是string表示。
在这里,我想我的不限制在4位,如果它是1它应该显示为0001,如果它11应显示为0011 ..以下是代码。
reciptno=1;//Pass only integer. string formatted = string.Format("{0:0000}", reciptno); TxtRecNo.Text = formatted;//Output=0001..
我实现了这个代码来生成Money收据号。
int num=1; string number=num.ToString().PadLeft(5, '0')
输出= “00001”