如何将1更改为00001?

19

我希望数字有固定的位数。

例如:00001、00198、48484。

我可以这样做:

string value;

if (number < 10)
{
    value = "0000" + number.ToString();
}
else if (number < 100)
{
    value = "000" + number.ToString();
}
else if (number < 1000)
{
    ...
}

但是这有点奇怪。是否有任何内置函数可以满足我的需求?


1
哦,有多少解决方案,而我却在世界的角落里!! - user2799350
9个回答

29

是的,有:

string value = String.Format("{0:D5}", number);

23
根据MS参考文献:http://msdn.microsoft.com/en-us/library/dd260048.aspx

您可以使用"D" 标准 数值格式字符串和精度说明符一起,用前导零填充整数。您可以通过使用自定义数值格式字符串来在前面添加零来填充整数和浮点数。

因此:

要将整数显示为十进制值,请调用其ToString(String)方法,并将字符串"Dn"作为格式参数的值传递,其中n表示字符串的最小长度。

代码:

string value = number.ToString("D5");

.NET fiddle:http://dotnetfiddle.net/0U9A6N


5
你应该使用带有自定义格式的 ToString() 方法 - 查看文档。特别是 0 格式说明符。

如果存在相应的数字,则用该数字替换零;否则,在结果字符串中显示零。

例如,

value = number.Tostring("00000");

3
string value = number.ToString("00000");

3
你可以这样做:
number.ToString("00000")

2

2
如果您想要返回5位数字,您应该使用PadLeft()函数;
int Value = 101;
char pad = '0';
String sValue = Value.ToString();

sValue  = sValue.s.PadLeft(5, char)

在这种情况下,您不必测试是否要添加1、2或3个零,它会自动添加所需的零以使其成为5位数字。

2
int input_number = Convert.ToInt32(txtinput.Text);
string number_value = input_number.ToString("00000");

我希望这能解决你的问题。在我之前的项目中,这个方法效果很好。在你的开发环境中测试一下,应该能正常工作。


-2
除了 String.Format,您还可以使用 String.PadLeft
value = number.ToString().PadLeft(5, '0');

2
为什么要调用两个方法,当你的问题可以通过一个方法调用解决呢?! - Abbas

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