C# convert int to string with padding zeros?

C#FormattingNumber Formatting

C# Problem Overview


In C# I have an integer value which need to be convereted to string but it needs to add zeros before:

For Example:

int i = 1;
  

When I convert it to string it needs to become 0001

I need to know the syntax in C#.

C# Solutions


Solution 1 - C#

i.ToString().PadLeft(4, '0') - okay, but doesn't work for negative numbers
i.ToString("0000"); - explicit form
i.ToString("D4"); - short form format specifier
$"{i:0000}"; - string interpolation (C# 6.0+)

Solution 2 - C#

i.ToString("D4");

See MSDN on format specifiers.

Solution 3 - C#

Here's a good example:

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

Solution 4 - C#

You can use:

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

Solution 5 - C#

C# 6.0 style string interpolation

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

Solution 6 - C#

i.ToString("0000");

Solution 7 - C#

Easy peasy

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

Solution 8 - C#

Simply

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

Solution 9 - C#

.NET has an easy function to do that in the String class. Just use:

.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"  

Solution 10 - C#

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

Solution 11 - C#

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);

Solution 12 - C#

Most of the given answers are slow or very slow or don't work for negative numbers.

Try this one:

}
	//
	//
	///<summary>Format a value with a fixed number of digits.</summary>
	public static string Pad( this long v, int digits ) {
		int negative = 0;
		if ( v < 0 ) {
			negative = 1;
			v = Math.Abs( v );
		}
		var source = v.ToString();
		var length = source.Length;
		int max = length;
		if ( max < digits ) {
			max = digits;
		}
		max += negative;
		var ca = new char[ max ];
		for ( int i = 0; i < max; i++ ) {
			ca[ i ] = '0';
		}
		while ( length > 0 ) {
			ca[ --max ] = source[ --length ];
		}
		if ( 0 != negative ) ca[ 0 ] = '-';
		return new string( ca );
	}

Solution 13 - C#

string hello = "Hello C# Corner.";

string helloHash = hello.PadLeft(5, '#');  

Console.WriteLine(helloHash); 

Output :-

#####Hello C# Corner.

Solution 14 - C#

Here I want to pad my number with 4 digit. For instance, if it is 1 then it should show as 0001, if it 11 it should show as 0011.

Below is the code that accomplishes this:

reciptno=1; // Pass only integer.

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

TxtRecNo.Text = formatted; // Output=0001

I implemented this code to generate money receipt number for a PDF file.

Solution 15 - C#

To pad int i to match the string length of int x, when both can be negative:

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionPinuView Question on Stackoverflow
Solution 1 - C#JayView Answer on Stackoverflow
Solution 2 - C#RyanView Answer on Stackoverflow
Solution 3 - C#Denys WesselsView Answer on Stackoverflow
Solution 4 - C#Yodan TauberView Answer on Stackoverflow
Solution 5 - C#Dr BlowhardView Answer on Stackoverflow
Solution 6 - C#Justin NiessnerView Answer on Stackoverflow
Solution 7 - C#maeneakView Answer on Stackoverflow
Solution 8 - C#cahit beyazView Answer on Stackoverflow
Solution 9 - C#HernanView Answer on Stackoverflow
Solution 10 - C#sergeView Answer on Stackoverflow
Solution 11 - C#DemodaveView Answer on Stackoverflow
Solution 12 - C#cskwgView Answer on Stackoverflow
Solution 13 - C#Sagar SojitraView Answer on Stackoverflow
Solution 14 - C#saktiprasad swainView Answer on Stackoverflow
Solution 15 - C#xnpView Answer on Stackoverflow