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:
D
significa "número decimal",2
el número de dígitos para imprimir.fuente
string.Format("D2", value)
usas obtendrásD2
la 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.value
es un int. Sivalue
es 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 = 123
entonces 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.PadLeft
no 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