solo numero mostrar formato decimales c# asp.net-mvc-3 formatting number-formatting

mostrar - formato numero c#



formatear un nĂºmero con comas y decimales en C#(asp.net MVC3) (10)

Necesito mostrar un número con comas y punto decimal.

Ejemplo: Caso 1: el número decimal es 432324 (esto no tiene comas ni puntos decimales) Debe mostrarlo como 432,324.00
pero no 432,324

Caso 2: el número decimal es 2222222.22 (no tiene comas) se debe mostrar como 2,222,222.22

Intenté ToString("#,##0.##") . Pero no lo está formateando.



Prueba con

ToString("#,##0.###")

Produce:

1234.55678 => 1.234.556

1234 => 1,234


Prueba con

ToString("#,##0.00")

Desde MSDN

* El especificador de formato personalizado "0" sirve como un símbolo de marcador de posición cero. Si el valor que se está formateando tiene un dígito en la posición donde aparece el cero en la cadena de formato, ese dígito se copia a la cadena de resultados; de lo contrario, aparece un cero en la cadena de resultados. La posición del cero más a la izquierda antes del punto decimal y del cero más a la derecha después del punto decimal determina el rango de dígitos que siempre están presentes en la cadena de resultados.

El especificador "00" hace que el valor se redondee al dígito más cercano que precede al decimal, donde siempre se utiliza el redondeo desde cero. Por ejemplo, formatear 34.5 con "00" resultaría en el valor 35. *


Su pregunta no es muy clara, pero esto debería lograr lo que está tratando de hacer:

decimal numericValue = 3494309432324.00m; string formatted = numericValue.ToString("#,##0.00");

Luego el formatted contendrá: 3,494,309,432,324.00


Tal vez simplemente desee la cadena de formato estándar "N" , como en

number.ToString("N")

Usará miles de separadores y un número fijo de decimales fraccionarios. El símbolo para los separadores de miles y el símbolo para el punto decimal dependen del proveedor de formato (normalmente CultureInfo ) que usa, al igual que el número de decimales (que normalmente será de 2, según lo requiera).

Si el proveedor de formato especifica un número diferente de decimales, y si no desea cambiar el proveedor de formato, puede dar el número de decimales después de la N , como en .ToString("N2") .

Edición: Los tamaños de los grupos entre las comas están gobernados por el

CultureInfo.CurrentCulture.NumberFormat.NumberGroupSizes

matriz, dado que no especifica un proveedor de formato especial.


Todo lo que se necesita es "#, 0.00", c # hace el resto.

Num.ToString ("#, 0.00" ")

  • El "#, 0" formatea los mil separadores.
  • "0.00" fuerza dos puntos decimales

Yo tuve el mismo problema. Quería dar formato a números como el formato "General" en hojas de cálculo, es decir, mostrar los decimales si son significativos, pero cortarlos si no. En otras palabras:

1234.56 => 1,234.56

1234 => 1,234

Debe admitir un número máximo de lugares después del decimal, pero no coloque ceros o puntos finales si no se requiere, y por supuesto, debe ser compatible con la cultura. Realmente nunca descubrí una forma limpia de hacerlo utilizando String.Format solo, pero una combinación de String.Format y Regex.Replace con alguna ayuda cultural de NumberFormatInfo.CurrentInfo hizo el trabajo (LinqPad C # Program).

string FormatNumber<T>(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


string Mynewcurrency = DisplayIndianCurrency("7743450.00"); private string DisplayIndianCurrency(string EXruppesformate) { string fare = EXruppesformate; decimal parsed = decimal.Parse(fare, CultureInfo.InvariantCulture); CultureInfo hindi = new CultureInfo("en-IN"); // string text = string.Format(hindi, "{0:c}", parsed);if you want <b>Rs 77,43,450.00</b> string text = string.Format(hindi, "{0:N}", parsed); //if you want <b>77,43,450.00</b> return ruppesformate = text; }


CultureInfo us = new CultureInfo("en-US"); TotalAmount.ToString("N", us)


int number = 1234567890; Convert.ToDecimal(number).ToString("#,##0.00");

Obtendrás el resultado 1,234,567,890.00 .