separador number miles formato decimales c#

c# - number - agregue comas usando String.Format para el número y



string.format c# (7)

Marqué otra respuesta y luego encontré que los valores cero son una cadena vacía.

System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("de-DE"); System.Threading.Thread.CurrentThread.CurrentCulture = ci; double x = 23232323.21; string y = x.ToString("#,0", System.Globalization.CultureInfo.CurrentCulture);

La cadena se devuelve en la cultura actual, que es alemana, por lo tanto y = 23.232.323

y = 0 cuando x = 0.

Usando String.Format, ¿cómo puedo asegurar que todos los números tengan comas después de cada 3 dígitos, por ejemplo, 23000 = "23,000" y que 0 devuelve "0"?

String.Format ("{0: n}", 0); // da 0.00 que no quiero. No quiero decimales, todos los números serán enteros.


Puede poner un número después de la N para especificar el número de dígitos decimales:

String.Format("{0:n0}", 0) // gives 0


Puedes hacer esto, lo cual me parece un poco más limpio para leer la intención de:

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

Ejemplo:

string.Format("{0:#,###0}", 123456789); // 123,456,789 string.Format("{0:#,###0}", 0); // 0


Si su configuración de cultura actual utiliza comas como separador de miles, puede simplemente formatearlo como un número con cero decimales:

String.Format("{0:N0}", 0)

O:

0.ToString("N0")


También puede jugar un poco con el objeto CultureInfo, si ninguna de las otras soluciones funciona bien para usted:

var x = CultureInfo.CurrentCulture; x.NumberFormat.NumberDecimalSeparator = ","; x.NumberFormat.NumberDecimalDigits = 0; x.NumberFormat.NumberGroupSizes = new int[] {3};


de msdn

double value = 1234567890; Console.WriteLine(value.ToString("#,#", CultureInfo.InvariantCulture));

Muestra 1,234,567,890.


lo pones así:

Console.WriteLine(**$**"Your current amount of money is: **{yourVar:c}**");