2010-12-01 53 views
327

在C#我有需要要转换为字符串的整数值,但它需要前加零:C#将int转换为带填充零的字符串?

例如:

int i = 1; 

当我把它转换成需要成为0001

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

+1

这可能会帮助你 - [如何:使用前导零填充数字](http://msdn.microsoft.com/en-us/library/dd260048.aspx)。祝您好运 – cadmuxe 2010-12-01 14:23:44

回答

517

i.ToString().PadLeft(4, '0') - 还行,但对于负数不起作用
i.ToString("0000"); - 显性形式
i.ToString("D4"); - 短表格式说明

+18

i.ToString()。PadLeft(4,'0')不适用于负数,例如(-5).PadLeft(4,'0')将是“00-5” – 2013-05-21 14:58:57

+4

如何显示一个固定长度的字符串。 ?? – 2014-11-12 10:34:49

+3

@Rahul阅读此:https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx#FFormatString – Kevdog777 2015-02-04 14:51:29

61

您可以使用:

int x = 1; 
x.ToString("0000"); 
18
i.ToString("0000"); 
246
i.ToString("D4"); 

请参阅格式说明符上的MSDN

101

这里有一个很好的例子:

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 
1

你也可以使用扩展

写一个静态的扩展类,并简单地使用它:

public static class Extensions 
{ 
    public static string IntToStringWithLeftPad(this int number) 
    { 
     return number.ToString("D4"); 
    } 
} 

,并用它喜欢:

 int i = 3; 
     string padStr = i.ToStringWithLeftPad(); 
-2

要垫int i匹配的int x字符串长度,当两个可以是负数:

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

C#6.0风格的字符串插值

int i = 1; 
var str1 = $"{i:D4}"; 
var str2 = $"{i:0000}"; 
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 
-1

在这里,我想我没有在4位数限制就像它是1它应该显示为0001,如果它11应该显示为0011..BOLOW是代码。

reciptno=1;//Pass only integer. 

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

    TxtRecNo.Text = formatted;//Output=0001.. 

我实现了这个代码来生成钱收据没有PDF格式。