Вопрос по increment, c#, int – C # - увеличивать число и держать нули перед

13

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

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

0000000000000000000000000000000000000050

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

Вам нужно будет использовать что-то более похожее наBigInteger скорее, чемintв противном случае приращение не удастся в короткие сроки. HABO

Ваш Ответ

4   ответа
19

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

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

29

ании в строку. Такие как

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

УвидетьJeppe Stig Nielson 's ответ для варианта форматирования, который я никогда не могу вспомнить.

Исправили, и спасибо.
аргументы в обратном порядке ...
@RhysW, нет, он просто дополняет длину, указанную вами, с указанным символом. Это не будет превышать эту длину. Например, «123» .PadLeft (2, «0») просто вернет «123»;
Спасибо! Я никогда не знаю варианты форматирования .. blizz
0

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

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

Не уверен, что это глупо, но попробуйте

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

выполните сложение или любые другие операции, а затем преобразуйте обратно в строку с достаточным количеством ведущих 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');

Похожие вопросы