user2799350
user2799350

Reputation: 399

How to change 1 to 00001?

I want to have numbers with a fixed digit count.

example: 00001, 00198, 48484

I can do like this:

string value;

if (number < 10)
{
    value = "0000" + number.ToString();
}
else if (number < 100)
{
    value = "000" + number.ToString();
}
else if (number < 1000)
{
    ...
}

But this is a bit odd. Is there any built in function for my purpose?

Upvotes: 19

Views: 25340

Answers (9)

Same as @Jojo's answer, but using C# 6's interpolated strings:

var value = $"{number:00000}";

Upvotes: 2

Irvin Dominin
Irvin Dominin

Reputation: 30993

According to the MS reference: http://msdn.microsoft.com/en-us/library/dd260048.aspx

You can pad an integer with leading zeros by using the "D" standard numeric format string together with a precision specifier. You can pad both integer and floating-point numbers with leading zeros by using a custom numeric format string.

So:

To display the integer as a decimal value, call its ToString(String) method, and pass the string "Dn" as the value of the format parameter, where n represents the minimum length of the string.

Code:

string value = number.ToString("D5");

.NET fiddle: http://dotnetfiddle.net/0U9A6N

Upvotes: 23

Vidhya Krishnan
Vidhya Krishnan

Reputation: 169

int input_number = Convert.ToInt32(txtinput.Text);
string number_value = input_number.ToString("00000");

I hope that it will solve your problem. It worked well for me in my previous project. Test this code in your development. It should be worked properly without doubt.

Upvotes: 2

Sachin
Sachin

Reputation: 40970

Apart from String.Format, You can also use String.PadLeft

value = number.ToString().PadLeft(5, '0');

Upvotes: -2

Nadeem_MK
Nadeem_MK

Reputation: 7689

If you wish to return 5 digits numbers, you should use the PadLeft() function;

int Value = 101;
char pad = '0';
String sValue = Value.ToString();

sValue  = sValue.s.PadLeft(5, char)

In this case, you don't have to test whether to add 1, 2 or 3 zeros, it'll automatically add the number of zeros needed to make it 5 digits number.

Upvotes: 2

Damien
Damien

Reputation: 8987

You can do it this way :

number.ToString("00000")

Upvotes: 3

Kami
Kami

Reputation: 19427

You should use the ToString() method with custom formating - see the docs. In particular the 0 specifier.

Replaces the zero with the corresponding digit if one is present; otherwise, zero appears in the result string.

eg,

value = number.Tostring("00000");

Upvotes: 5

Jojo
Jojo

Reputation: 1913

Yes, there is:

string value = String.Format("{0:D5}", number);

Upvotes: 29

Marc Gravell
Marc Gravell

Reputation: 1063338

string value = number.ToString("00000");

Upvotes: 3

Related Questions