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}**");