我有一个我需要转换为字符串的数字。首先我使用了这个:
Key = i.ToString();
但是我意识到它是按照一个奇怪的顺序排序的,所以我需要用零填充它。我怎么能这样做?
答案 0 :(得分:305)
相当简单:
Key = i.ToString("D2");
D
代表“十进制数”,2
表示要打印的位数。
答案 1 :(得分:178)
有关String.Format
的一些示例用法,请参阅String formatting in C#实际上是formatting int
的更好示例String.Format("{0:00000}", 15); // "00015"
$"{15:00000}"; // "00015"
答案 2 :(得分:64)
如果你想保持固定的宽度,例如10位,就像这样做
Key = i.ToString("0000000000");
替换为任意数量的数字。
i = 123
将导致Key = "0000000123"
。
答案 3 :(得分:29)
使用:
i.ToString("D10")
请参阅Int32.ToString(MSDN)和Standard Numeric Format Strings(MSDN)。
或使用String.PadLeft
。例如,
int i = 321;
Key = i.ToString().PadLeft(10, '0');
会导致0000000321
。虽然String.PadLeft
不适用于负数。
请参阅String.PadLeft(MSDN)。
答案 4 :(得分:15)
通常String.Format(“format”,object)优于object.ToString(“format”)。因此,
String.Format("{0:00000}", 15);
优于
Key = i.ToString("000000");
答案 5 :(得分:13)
尝试:
Key = i.ToString("000000");
但就个人而言,我会看到你是否不能直接对整数进行排序,而不是字符串表示。
答案 6 :(得分:3)
这里我希望我的no限制在4位数,如果它是1它应该显示为0001,如果它11它应该显示为0011.Below是代码。
reciptno=1;//Pass only integer.
string formatted = string.Format("{0:0000}", reciptno);
TxtRecNo.Text = formatted;//Output=0001..
我实施此代码以生成货币收据号。
答案 7 :(得分:1)
int num=1;
string number=num.ToString().PadLeft(4, '0')
输出=" 00001"
编辑:更改为匹配PadLeft金额
答案 8 :(得分:0)
对于内插字符串:
\x0B
答案 9 :(得分:0)
我找到了一种更好的方法,一直尝试但对我不起作用
Convert.ToDecimal(LN).ToString("000000#");
LN 是 Int64