将字符串格式化为3位数字

Ale*_*lex 61 c# string format numbers

而不是这样做,我想利用string.format()来完成相同的结果:

if (myString.Length < 3)
{
    myString =  "00" + 3;
}
Run Code Online (Sandbox Code Playgroud)

Ree*_*sey 111

如果您只是格式化数字,则可以直接提供正确的自定义数字格式,使其成为3位数字符串:

myString = 3.ToString("000");
Run Code Online (Sandbox Code Playgroud)

或者,使用标准D格式字符串:

myString = 3.ToString("D3");
Run Code Online (Sandbox Code Playgroud)

  • 如果要在构造的字符串中直接使用格式化的数字,还可以使用:`string.Format("这是我的数字:{0:D3}",数字)` (37认同)
  • @coeing意识到这只有在`number`是int时才有效.例如,如果`number`是double,则必须是`string.Format("{0:000}",number)` (2认同)
  • 较短的字符串插值`var myString = $“这是我的数字:{number:D3}”;` (2认同)

小智 24

 string.Format("{0:000}", myString);
Run Code Online (Sandbox Code Playgroud)


Pin*_*nyM 18

它被称为填充:

myString.PadLeft(3, '0')
Run Code Online (Sandbox Code Playgroud)

  • 从问题中不清楚格式应该总是应用于静态数字(为什么OP选择使用'3'仍然不清楚,因此我的问题在上面).它可能是其他一些字符,不能使用数字格式化程序.在这种情况下,填充是一种安全的替代方案. (2认同)

Ali*_*Ali 12

这是如何使用字符串插值 C# 7 完成的

$"{myString:000}"
Run Code Online (Sandbox Code Playgroud)


Sxc*_*Sxc 6

(暂不说评论,请给我添加旁注)

如果您的输出需要固定长度为3位数,即数量最多为1000或更多(保留固定长度),请不要忘记在其上添加 mod 1000.

yourNumber=1001;
yourString= yourNumber.ToString("D3");        // "1001" 
yourString= (yourNumber%1000).ToString("D3"); // "001" truncated to 3-digit as expected
Run Code Online (Sandbox Code Playgroud)

在Fiddler上的小道样本https://dotnetfiddle.net/qLrePt