C# convert int to string with padding zeros?
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;
开发者_JAVA百科
When I convert it to string it needs to become 0001
I need to know the syntax in 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+)
i.ToString("D4");
See MSDN on format specifiers.
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
You can use:
int x = 1;
x.ToString("0000");
C# 6.0 style string interpolation
int i = 1;
var str1 = $"{i:D4}";
var str2 = $"{i:0000}";
i.ToString("0000");
Easy peasy
int i = 1;
i.ToString("0###")
Simply
int i=123;
string paddedI = i.ToString("D4");
.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"
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
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);
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 );
}
string hello = "Hello C# Corner.";
string helloHash = hello.PadLeft(5, '#');
Console.WriteLine(helloHash);
Output :-
#####Hello C# Corner.
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.
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')
精彩评论