C # конвертировать int в строку с нулями заполнения? - PullRequest
404 голосов
/ 01 декабря 2010

В C # у меня есть целочисленное значение, которое нужно преобразовать в строку, но перед этим нужно добавить нули:

Например:

int i = 1;

Когда я преобразую его в строку, он должен стать 0001

Мне нужно знать синтаксис в C #.

Ответы [ 12 ]

636 голосов
/ 01 декабря 2010

i.ToString().PadLeft(4, '0') - хорошо, но не работает для отрицательных чисел
i.ToString("0000"); - явная форма
i.ToString("D4"); - спецификатор формата краткой формы

265 голосов
/ 01 декабря 2010
i.ToString("D4");

См. MSDN о спецификаторах формата.

114 голосов
/ 01 сентября 2011

Вот хороший пример:

int number = 1;
//D4 = pad with 0000
string outputValue = String.Format("{0:D4}", number);
Console.WriteLine(outputValue);//Prints 0001
//OR
outputValue = number.ToString().PadLeft(4, '0');
Console.WriteLine(outputValue);//Prints 0001 as well
66 голосов
/ 01 декабря 2010

Вы можете использовать:

int x = 1;
x.ToString("0000");
43 голосов
/ 18 ноября 2016

C # 6.0 стиль интерполяции строк

int i = 1;
var str1 = $"{i:D4}";
var str2 = $"{i:0000}";
18 голосов
/ 01 декабря 2010
i.ToString("0000");
2 голосов
/ 02 мая 2013

Просто

int i=123;
string paddedI = i.ToString("D4");
0 голосов
/ 03 июля 2019

.NET имеет простую функцию для этого в классе String.Просто используйте:

.ToString().PadLeft(4, '0')  // that will fill your number with 0 on the left, up to 4 length

int i = 1; 
i.toString().PadLeft(4,'0')  // will return "0001"  
0 голосов
/ 21 февраля 2019

Легкий горох

int i = 1;
i.ToString("0###")
0 голосов
/ 21 июня 2017

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

Ниже приведен код, который выполняет это:

reciptno=1; // Pass only integer.

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

TxtRecNo.Text = formatted; // Output=0001

Я реализовал этот код для генерации номера денежного чека для файла PDF.

...