18

我想要具有固定位数的数字。

例如:00001、00198、48484

我可以这样做:

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

但这有点奇怪。是否有任何内置功能可用于我的目的?

4

9 回答 9

28

就在这里:

string value = String.Format("{0:D5}", number);
于 2013-09-26T11:00:57.863 回答
23

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

您可以通过使用“D”标准 数字格式字符串和精度说明符来用前导零填充整数。您可以使用自定义数字格式字符串用前导零填充整数和浮点数。

所以:

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

代码:

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

.NET 小提琴:http ://dotnetfiddle.net/0U9A6N

于 2013-09-26T11:02:25.787 回答
5

您应该使用ToString()自定义格式的方法 -请参阅文档。特别是0说明符。

如果存在 1,则将 0 替换为相应的数字;否则,结果字符串中将出现零。

例如,

value = number.Tostring("00000");
于 2013-09-26T11:01:07.803 回答
3
string value = number.ToString("00000");
于 2013-09-26T11:00:52.797 回答
3

你可以这样做:

number.ToString("00000")
于 2013-09-26T11:02:51.187 回答
2

如果你想返回 5 位数字,你应该使用PadLeft() 函数

int Value = 101;
char pad = '0';
String sValue = Value.ToString();

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

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

于 2013-09-26T11:04:06.170 回答
2
int input_number = Convert.ToInt32(txtinput.Text);
string number_value = input_number.ToString("00000");

我希望它能解决你的问题。在我之前的项目中,它对我很有效。在您的开发中测试此代码。毫无疑问,它应该正常工作。

于 2013-09-26T12:48:10.913 回答
1

与@Jojo 的答案相同,但使用C# 6 的插值字符串

var value = $"{number:00000}";
于 2018-03-19T14:59:48.410 回答
-2

除了String.Format,您还可以使用String.PadLeft

value = number.ToString().PadLeft(5, '0');
于 2013-09-26T11:01:02.390 回答