С# конвертировать int в строку с нулями заполнения?

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

Пример:

int i = 1;

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

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

Ответ 1

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

Ответ 2

i.ToString("D4");

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

Ответ 3

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

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

Ответ 4

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

int x = 1;
x.ToString("0000");

Ответ 5

Интерпретация строки стиля строки # 6 #

int i = 1;
var str1 = $"{i:D4}";
var str2 = $"{i:0000}";

Ответ 6

i.ToString("0000");

Ответ 7

Просто

int i=123;
string paddedI = i.ToString("D4");

Ответ 8

int p = 3; // fixed length padding
int n = 55; // number to test

string t = n.ToString("D" + p); // magic     

Console.WriteLine("Hello, world! >> {0}", t);

// outputs: 
// Hello, world! >> 055

Ответ 9

Очень просто

int i = 1;
i.ToString("0###")

Ответ 10

В .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"  

Ответ 11

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

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

reciptno=1; // Pass only integer.

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

TxtRecNo.Text = formatted; // Output=0001

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

Ответ 12

Вставить int i в соответствие с длиной строки int x, если оба значения могут быть отрицательными:

i.ToString().PadLeft((int)Math.Log10(Math.Abs(x < 0 ? x * 10 : x)) + 1, '0')