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)