Tengo un número que necesito convertir en una cadena. Primero usé esto:
Key = i.ToString();
Pero me doy cuenta de que se está ordenando en un orden extraño, por lo que necesito rellenarlo con ceros. ¿Cómo podría hacer esto?
c#
string
string-formatting
Mandy Weston
fuente
fuente

Respuestas:
Bastante simple:
Dsignifica "número decimal",2el número de dígitos para imprimir.fuente
string.Format("D2", value)usas obtendrásD2la salida. Esto no funciona. Debemos usar"{0:00}"en este caso.string.Format("{0:D2}", value)en su lugar. Solo decirstring.Format("D2", ...)que no reemplazará nada, pase lo que pase, ya que no tiene un marcador de posición.valuees un int. Sivaluees un doble, por ejemplo, tendrá que serstring.Format("{0:00}", value)Consulte el formato de cadenas en C # para ver algunos ejemplos de usos de String.
En realidad, un mejor ejemplo de formateo int
o use la interpolación de cadenas :
fuente
Si desea mantener el ancho fijo, por ejemplo 10 dígitos, hágalo así
Reemplace con tantos dígitos como desee.
i = 123entonces resultará enKey = "0000000123".fuente
Como nadie ha mencionado esto aún, si está utilizando C # versión 6 o superior (es decir, Visual Studio 2015), puede usar la interpolación de cadenas para simplificar su código. Entonces, en lugar de usar
string.Format(...), puedes hacer esto:fuente
utilizar:
Consulte Int32.ToString (MSDN) y cadenas de formato numérico estándar. (MSDN).
O usar
String.PadLeft. Por ejemplo,Daría como resultado
0000000321. AunqueString.PadLeftno funcionaría para números negativos.Ver String.PadLeft (MSDN).
fuente
Por lo general, String.Format ("formato", objeto) es preferible a object.ToString ("formato"). Por lo tanto,
es preferible a
fuente
Tratar:
Sin embargo, personalmente vería si no puede ordenar el número entero directamente, en lugar de la representación de cadena.
fuente
Para cadenas interpoladas:
fuente
Aquí quiero que mi no se limite en 4 dígitos, como si fuera 1, debería aparecer como 0001, si es 11, debería aparecer como 0011 ... A continuación se muestra el código.
Implementé este código para generar el recibo de dinero no.
fuente
Salida = "00001"
EDITAR: cambiado para coincidir con la cantidad de PadLeft
fuente