Как я могу форматировать число в строку с ведущими нулями?

У меня есть число, которое мне нужно преобразовать в строку. Сначала я использовал это:

Key = i.ToString();

Но я понимаю, что это сортируется в странном порядке, и поэтому мне нужно проложить его нулями. Как я могу это сделать?

Ответ 1

Скорее просто:

Key = i.ToString("D2");

D означает "десятичное число", 2 для количества цифр для печати. ​​

Ответ 3

Если вы хотите сохранить фиксированную ширину, например, 10 цифр, сделайте это так

Key = i.ToString("0000000000");

Замените столько цифр, сколько хотите.

i = 123 приведет к Key = "0000000123".

Ответ 4

Так как никто еще не упомянул об этом, если вы используете С# версии 6 или выше (например, Visual Studio 2015), вы можете использовать интерполяцию строк для упрощения кода. Поэтому вместо использования string.Format(...) вы можете просто сделать это:

Key = $"{i:D2}";

Ответ 6

Обычно String.Format( "format", object) предпочтительнее object.ToString( "format" ). Следовательно,

String.Format("{0:00000}", 15);  

предпочтительнее,

Key = i.ToString("000000");

Ответ 7

Try:

Key = i.ToString("000000");

Лично, однако, я видел бы, если вы не можете сортировать целое число напрямую, а не строковое представление.

Ответ 8

Здесь я хочу, чтобы мой no не ограничивался цифрой 4, как если бы она была 1, она должна отображаться как 0001, если она 11 должна отображаться как 0011..Below - это код.

        reciptno=1;//Pass only integer.

        string formatted = string.Format("{0:0000}", reciptno);

        TxtRecNo.Text = formatted;//Output=0001..

Я выполнил этот код, чтобы создать денежный квитанционный номер.

Ответ 9

int num=1;
string number=num.ToString().PadLeft(4, '0')

Выход = "00001"

РЕДАКТИРОВАТЬ: Изменено, чтобы соответствовать сумме PadLeft

Ответ 10

Для интерполированных строк:

$"Int value: {someInt:D4} or {someInt:0000}. Float: {someFloat: 00.00}"