С# - номер приращения и сохранить нули впереди
Мне нужно сделать 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)