Reputation: 4168
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
Reputation: 11
You can use this too..
int number = 1;
string tempNumber = $"{number:00}";
result:
01
Upvotes: 0
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
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
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
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