C# 如何将数字转换为字符串,但格式为x位数

C# 如何将数字转换为字符串,但格式为x位数,c#,format,C#,Format,我想将数字转换为字符串,但将数字格式化为10位数字。例如,如果数字为5,则字符串应为“0000000005”。我在以下位置检查了字符串的格式: 但是没有任何格式允许您指定位数 实际上,“0”占位符可以工作,但实际上我需要100个位置,所以我不打算使用“0”占位符。此页面应该可以帮助您找到所需的解决方案:您可以使用输出前导零: var d = 5; var s2 = d.ToString("D2"); var s10 = d.ToString("D10"); Console.WriteLine(

我想将数字转换为字符串,但将数字格式化为10位数字。例如,如果数字为5,则字符串应为“0000000005”。我在以下位置检查了字符串的格式:

但是没有任何格式允许您指定位数


实际上,“0”占位符可以工作,但实际上我需要100个位置,所以我不打算使用“0”占位符。

此页面应该可以帮助您找到所需的解决方案:

您可以使用输出前导零:

var d = 5;
var s2 = d.ToString("D2");
var s10 = d.ToString("D10");
Console.WriteLine(s2);
Console.WriteLine(s10);
输出为:

05
0000000005

通常的
D
说明符的精度足以将数字格式化为所需的前导零数。
但是它会在99处停止,如果你真的需要100个前导零,你需要求助于旧的可靠的字符串连接和右截断方法

int number = 5;
string leadingZero = new string ('0', 100) + number.ToString();
string result = leadingZero.Substring(leadingZero.Length - 100);

“D”没有与我给出的链接上的其他占位符一起列出的原因是什么?是的-Dn是一个标准格式选项,而不是自定义选项:@Steve我不知道标准格式的限制-似乎99是由.NET framework定义的上限。我和我都没有在LinqPad中测试并发现这一事实。哦,这不是一种常见的情况我想你看过文档了吗,或者更具体地说,@NicholasCarey并不要求100前导零……我在LINQPad中写了同样的东西,但你写得更快:-)