blizz
blizz

Reputation: 4168

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?

Upvotes: 17

Views: 29087

Answers (5)

rio gunawan
rio gunawan

Reputation: 11

You can use this too..

int number = 1;
string tempNumber = $"{number:00}";

result:

01

Upvotes: 0

alfongad
alfongad

Reputation: 21

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

Upvotes: 2

Sapiens
Sapiens

Reputation: 51

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)

Upvotes: 2

Anthony Pegram
Anthony Pegram

Reputation: 126884

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.

Upvotes: 39

Jeppe Stig Nielsen
Jeppe Stig Nielsen

Reputation: 61952

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

Upvotes: 20

Related Questions