C# - increment number and keep zeros in front

I need to make a 40 digit counter variable. It should begin as 0000000000000000000000000000000000000001 and increment to 0000000000000000000000000000000000000002

When I use the int class, it cuts off all the zeros. Problem is I need to increment the number and then convert it to a string, with the correct number of leading zeros. The total size should be 40 digits. So if I hit 50 for example, it should look like this:

0000000000000000000000000000000000000050

How can I do that and retain the zeros?

Answers


Use the integer and format or pad the result when you convert to a string. Such as

int i = 1;
string s = i.ToString().PadLeft(40, '0');

See Jeppe Stig Nielson's answer for a formatting option that I can also never remember.


Try using

int myNumber = ...;
string output = myNumber.ToString("D40");

Of course, the int can never grow so huge as to fill out all those digit places (the greatest int having only 10 digits).


Just convert your string to int, perform the addition or any other operations, then convert back to string with adequate number of leading 0's:

// 39 zero's + "1"
string initValue = new String('0', 39) + "1";

// convert to int and add 1
int newValue = Int32.Parse(initValue) + 1;

// convert back to string with leading zero's
string newValueString = newValue.ToString().PadLeft(40, '0');

I had to do something similar the other day, but I only needed two zeros. I ended up with

string str = String.Format("{0:00}", myInt);

Not sure if it's fool proof but try

String.Format("{0:0000000000000000000000000000000000000000}", myInt)

Need Your Help

View JSON file in Browser

javascript json internet-explorer firefox google-chrome

It is not a programming question, but need your views in few words.