¿Cómo puedo formatear un número en una cadena con ceros a la izquierda?

Tengo un número que necesito convertir a una cadena. Primero usé esto:

Key = i.ToString(); 

Pero me doy cuenta de que está siendo ordenado en un orden extraño y necesito rellenarlo con ceros. ¿Cómo podría hacer esto?

Bastante simple:

 Key = i.ToString("D2"); 

D significa “número decimal”, 2 para la cantidad de dígitos para imprimir.

Vea el formato de cadena en C # para algunos ejemplos de usos de String.Format

En realidad, es un mejor ejemplo de formateo int

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

Si desea mantener el ancho fijo, por ejemplo 10 dígitos, hágalo de esta manera

 Key = i.ToString("0000000000"); 

Reemplaza con tantos dígitos como quieras.

i = 123 dará como resultado Key = "0000000123" .

Como nadie ha mencionado esto todavía, si está utilizando la versión 6 de C # o superior (es decir, Visual Studio 2015), puede utilizar la interpolación de cadenas para simplificar su código. Entonces, en lugar de usar string.Format(...) , puedes hacer esto:

 Key = $"{i:D2}"; 

utilizar:

 i.ToString("D10") 

Consulte Int32.ToString (MSDN) y cadenas de formato numérico estándar (MSDN).

O use String.PadLeft . Por ejemplo,

 int i = 321; Key = i.ToString().PadLeft(10, '0'); 

Daría como resultado 0000000321 . Aunque String.PadLeft no funcionaría para números negativos.

Ver String.PadLeft (MSDN).

Por lo general, String.Format (“formato”, objeto) es preferible a object.ToString (“formato”). Por lo tanto,

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

es preferible a,

 Key = i.ToString("000000"); 

Tratar:

 Key = i.ToString("000000"); 

Personalmente, sin embargo, vería si no puedes ordenar el entero directamente, en lugar de la representación de la cadena.

Aquí quiero que mi no limite en 4 dígitos, como si fuera 1, debería mostrarse como 0001, si es 11 debería mostrarse como 0011 … Debajo está el código.

  reciptno=1;//Pass only integer. string formatted = string.Format("{0:0000}", reciptno); TxtRecNo.Text = formatted;//Output=0001.. 

Implementé este código para generar el recibo de dinero no.

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

Salida = “00001”