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

时间:2012-09-24 18:34:21

标签: c# string numbers format

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

if (myString.Length < 3)
{
    myString =  "00" + 3;
}

9 个答案:

答案 0 :(得分:101)

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

myString = 3.ToString("000");

或者,使用standard D format string

myString = 3.ToString("D3");

答案 1 :(得分:23)

 string.Format("{0:000}", myString);

答案 2 :(得分:18)

它被称为Padding

myString.PadLeft(3, '0')

答案 3 :(得分:5)

(暂且不能发表评论,请允许我添加旁注)

万一你的输出需要固定长度为3位数,即数量最多为1000或更多(保留固定长度),不要忘记添加 mod 1000 在它上面。

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

在Fiddler https://dotnetfiddle.net/qLrePt

上追踪样本

答案 4 :(得分:3)

“如何:使用前导零填充数字” http://msdn.microsoft.com/en-us/library/dd260048.aspx

答案 5 :(得分:3)

你也可以这样做:string.Format(“{0:D3},3);

答案 6 :(得分:3)

这是使用字符串内插C#7完成的操作

$"{myString:000}"

答案 7 :(得分:2)

是否必须是String.Format

这看起来像是String.Padleft

的工作
myString=myString.PadLeft(3, '0');

或者,如果您直接从int转换:

myInt.toString("D3");

答案 8 :(得分:2)

这是一个简短的字符串format Interpolation

$"{value:D3}"