C#将int转换为带填充零的字符串?

时间:2010-12-01 14:18:52

标签: c# formatting number-formatting

在C#中,我有一个整数值,需要对字符串进行控制,但需要在之前添加零:

例如:

int i = 1;

当我将其转换为字符串时,它需要变为0001

我需要知道C#中的语法。

13 个答案:

答案 0 :(得分:625)

i.ToString().PadLeft(4, '0') - 好的,但对负数不起作用 i.ToString("0000"); - 明确形式
i.ToString("D4"); - 简短格式说明符

答案 1 :(得分:262)

i.ToString("D4");

请参阅格式说明符MSDN

答案 2 :(得分:112)

这是一个很好的例子:

int number = 1;
//D4 = pad with 0000
string outputValue = String.Format("{0:D4}", number);
Console.WriteLine(outputValue);//Prints 0001
//OR
outputValue = number.ToString().PadLeft(4, '0');
Console.WriteLine(outputValue);//Prints 0001 as well

答案 3 :(得分:66)

您可以使用:

int x = 1;
x.ToString("0000");

答案 4 :(得分:40)

C#6.0样式字符串插值

int i = 1;
var str1 = $"{i:D4}";
var str2 = $"{i:0000}";

答案 5 :(得分:17)

i.ToString("0000");

答案 6 :(得分:2)

简单地

int i=123;
string paddedI = i.ToString("D4");

答案 7 :(得分:1)

public static string ToLeadZeros(this int strNum, int num)
{
    var str = strNum.ToString();
    return str.PadLeft(str.Length + num, '0');
}

// var i = 1;
// string num = i.ToLeadZeros(5);

答案 8 :(得分:0)

int p = 3; // fixed length padding
int n = 55; // number to test

string t = n.ToString("D" + p); // magic     

Console.WriteLine("Hello, world! >> {0}", t);

// outputs: 
// Hello, world! >> 055

答案 9 :(得分:0)

轻松自在

int i = 1;
i.ToString("0###")

答案 10 :(得分:0)

.NET在String类中具有简单的功能。 只需使用:

.ToString().PadLeft(4, '0')  // that will fill your number with 0 on the left, up to 4 length

int i = 1; 
i.toString().PadLeft(4,'0')  // will return "0001"  

答案 11 :(得分:-2)

我想用4位数填充我的号码。例如,如果它是1那么 它应该显示为0001,如果它应该显示为0011.

以下是完成此任务的代码:

reciptno=1; // Pass only integer.

string formatted = string.Format("{0:0000}", reciptno);

TxtRecNo.Text = formatted; // Output=0001

我实施此代码以生成PDF文件的收款编号。

答案 12 :(得分:-4)

要填充int i以匹配int x的字符串长度,当两者都为负时:

i.ToString().PadLeft((int)Math.Log10(Math.Abs(x < 0 ? x * 10 : x)) + 1, '0')