将整数(数字)转换为带前导零的字符串?(4位数)

100

https://dev59.com/e1LTa4cB1Zd3GeqPcKGO https://dev59.com/lG025IYBdhLWcg3wfmHw https://dev59.com/f2855IYBdhLWcg3weEKJ - user166390
4个回答

151

像这样使用String.PadLeft

var result = input.ToString().PadLeft(length, '0');

c=1 a="%03d"%(c) 这段代码完美运行。 - shiny
5
这不是一个好的解决方案。使用此方法,您需要计算数字的当前长度并添加正确数量的零。例如,12需要加两个零,而123需要加一个零。使用.ToString("Dx")会更好。 - arrkaye
5
不正确。PadLeft接受总字母数作为参数,而不是要添加的字母数。因此,"1".PadLeft(4, '0')的结果是"0001"。 - Jens
4
不是一个好的模式,你分配并复制了字符串两次,而且只是使用了你知道的最朴素的解决方案。ToString有一个专门用于此目的的参数,请使用它。 - Jakub Míšek
4
以下是Jeff的解决方案,这将更好。 - Markus Knappen Johansson

114

利用现有的格式选项,使用Decimal格式字符串。它比直接操作字符串更灵活,并且几乎不需要维护。

要获取至少4位数字的字符串表示:

int length = 4;
int number = 50;
string asString = number.ToString("D" + length); //"0050"

95

1
字符串文本 = no:0000; // 相同但更短 - Butti

4

val.ToString("".PadLeft(length, '0'))


1
使用新的C#字符串插值,例如长度为4var paddedValue = $"{intValue:D4}" - Liran Barniv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接