Answers:
相当简单:
Key = i.ToString("D2");
D
代表“十进制数”,2
代表要打印的位数。
string.Format("D2", value)
您将获得D2
输出。这行不通。"{0:00}"
在这种情况下,我们必须使用。
string.Format("{0:D2}", value)
改用。只是说string.Format("D2", ...)
不会替换任何东西,因为您没有占位符。
value
int 才可以使用。value
例如,如果是双string.Format("{0:00}", value)
有关String.Format的一些示例用法,请参见C#中的字符串格式。
实际上是格式化int的更好示例
String.Format("{0:00000}", 15); // "00015"
$"{15:00000}"; // "00015"
如果您希望将其保持固定的宽度(例如10位数字),请按照以下步骤操作
Key = i.ToString("0000000000");
用任意多的数字替换。
i = 123
然后将导致Key = "0000000123"
。
用:
i.ToString("D10")
请参见Int32.ToString(MSDN)和标准数字格式字符串(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");
不过,就我个人而言,我将看看您是否不能直接对整数而不是字符串表示进行排序。
对于插值字符串:
$"Int value: {someInt:D4} or {someInt:0000}. Float: {someFloat: 00.00}"
在这里,我希望我的no限制在4位,例如如果为1,则应显示为0001,如果为11,则应显示为0011 ..下面是代码。
reciptno=1;//Pass only integer.
string formatted = string.Format("{0:0000}", reciptno);
TxtRecNo.Text = formatted;//Output=0001..
我实现了此代码以生成钱收据编号。
int num=1;
string number=num.ToString().PadLeft(4, '0')
输出=“ 00001”
编辑:更改以匹配PadLeft量