С# - номер приращения и сохранить нули впереди

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

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

0000000000000000000000000000000000000050

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

Ответ 1

Используйте целое число и форматируйте или создавайте результат при преобразовании в строку. Например,

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

См. Jeppe Stig Nielson answer для опции форматирования, которую я также не могу запомнить.

Ответ 2

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

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

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

Ответ 3

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

// 39 zero + "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');

Ответ 4

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

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

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

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