C# - приращение числа и сохранение нулей спереди

мне нужно сделать 40-значную переменную счетчика. Она должна начинаться как 0000000000000000000000000000000000000001
и увеличить до
0000000000000000000000000000000000000002

когда я использую int класс, он отрезает все нули. Проблема в том, что мне нужно увеличить число, а затем преобразовать его в строку с правильным количеством ведущих нулей. Общий размер должен быть 40 цифр. Поэтому, если я нажму 50, например, это должно выглядеть так:

0000000000000000000000000000000000000050

как я могу это сделать и сохранить нули?

4 ответов


используйте целое число и формат или pad результат при преобразовании в строку. Такие как

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

посмотреть ответ Йеппе Стига Нильсона для опции форматирования, которую я также никогда не помню.


попробуйте использовать

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

конечно,int никогда не может вырасти настолько огромным, чтобы заполнить все эти места цифр (самый большой int иметь только 10 цифр).


просто преобразуйте строку в int, выполните сложение или любые другие операции, а затем преобразуйте обратно в строку с достаточным количеством ведущих 0:

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

Я должен был сделать что-то подобное на днях, но мне нужны были только два нуля. Я закончил с

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

не уверен, что это доказательство дурака, но попробуйте

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