Siéntete libre de divulgar nuestro sitio y códigos con tus amigos, ayúdanos a ampliar esta comunidad.
Solución:
int number = 1234567890;
Convert.ToDecimal(number).ToString("#,##0.00");
obtendrás el resultado 1,234,567,890.00
.
Tal vez simplemente desee el formato estándar string "N"
como en
number.ToString("N")
Utilizará separadores de miles y un número fijo de decimales fraccionarios. El símbolo de los separadores de miles y el símbolo del punto decimal dependen del proveedor de formato (normalmente CultureInfo
) que utilice, al igual que el número de decimales (que normalmente serán 2, según lo requiera).
Si el proveedor de formato especifica una cantidad diferente de decimales y no desea cambiar el proveedor de formato, puede proporcionar la cantidad de decimales después de la N
como en .ToString("N2")
.
Editar: Los tamaños de los grupos entre las comas se rigen por el
CultureInfo.CurrentCulture.NumberFormat.NumberGroupSizes
arraydado que no especifica un proveedor de formato especial.
Yo tuve el mismo problema. Quería formatear números como el formato “General” en hojas de cálculo, lo que significa mostrar decimales si son significativos, pero eliminarlos si no. En otras palabras:
1234,56 => 1234,56
1234 => 1234
Debe admitir una cantidad máxima de lugares después del decimal, pero no coloque ceros o puntos finales si no es necesario y, por supuesto, debe ser compatible con la cultura. Realmente nunca descubrí una manera limpia de hacerlo usando String.Format solo, pero una combinación de String.Format y Regex.Replace con algo de ayuda cultural de NumberFormatInfo.CurrentInfo hizo el trabajo (LinqPad C# Program).
string FormatNumber(T number, int maxDecimals = 4)
return Regex.Replace(String.Format("0:n" + maxDecimals + "", number),
@"[" + System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator + "]?0+$", "");
void Main()
foreach (var test in new[] 123, 1234, 1234.56, 123456.789, 1234.56789123 )
Console.WriteLine(test + " = " + FormatNumber(test));
Produce:
123 = 123
1234 = 1,234
1234.56 = 1,234.56
123456.789 = 123,456.789
1234.56789123 = 1,234.5679
Tienes la posibilidad difundir esta noticia si te valió la pena.