Pregunta .NET String.Format () para agregar comas en el lugar de miles para un número


Quiero agregar una coma en el lugar de los millares para un número. String.Format()?


672
2017-09-19 21:26


origen


Respuestas:


String.Format("{0:n}", 1234); //Output: 1,234.00

string.Format("{0:n0}", 9876); // no digits after the decimal point. Output: 9,876

962
2017-09-19 21:29



Encontré que esta es la manera más simple:

myInteger.ToString("N0")

299
2017-10-19 05:04



int number = 1000000000;
string whatYouWant = number.ToString("#,##0");
//You get: 1,000,000,000

125
2017-11-17 15:15



Si desea una cultura específica, puede intentar esto:

(19950000.0).ToString("N",new CultureInfo("en-US")) = 19,950,000.00

(19950000.0).ToString("N",new CultureInfo("is-IS")) = 19.950.000,00

Nota: algunas culturas usan , para significar decimal en lugar de . así que ten cuidado.


86
2017-10-26 09:22



Formatos estándar, con sus productos relacionados,

Console.WriteLine("Standard Numeric Format Specifiers");
String s = String.Format("(C) Currency: . . . . . . . . {0:C}\n" +
                    "(D) Decimal:. . . . . . . . . {0:D}\n" +
                    "(E) Scientific: . . . . . . . {1:E}\n" +
                    "(F) Fixed point:. . . . . . . {1:F}\n" +
                    "(G) General:. . . . . . . . . {0:G}\n" +
                    "    (default):. . . . . . . . {0} (default = 'G')\n" +
                    "(N) Number: . . . . . . . . . {0:N}\n" +
                    "(P) Percent:. . . . . . . . . {1:P}\n" +
                    "(R) Round-trip: . . . . . . . {1:R}\n" +
                    "(X) Hexadecimal:. . . . . . . {0:X}\n",
                    - 1234, -1234.565F);
Console.WriteLine(s);

Ejemplo de salida (cultura en-us):

(C) Currency: . . . . . . . . ($1,234.00)
(D) Decimal:. . . . . . . . . -1234
(E) Scientific: . . . . . . . -1.234565E+003
(F) Fixed point:. . . . . . . -1234.57
(G) General:. . . . . . . . . -1234
    (default):. . . . . . . . -1234 (default = 'G')
(N) Number: . . . . . . . . . -1,234.00
(P) Percent:. . . . . . . . . -123,456.50 %
(R) Round-trip: . . . . . . . -1234.565
(X) Hexadecimal:. . . . . . . FFFFFB2E

64
2018-03-01 23:44



Este es el mejor formato. Funciona en todos esos casos:

String.Format( "{0:#,##0.##}", 0 ); // 0
String.Format( "{0:#,##0.##}", 0.5 ); // 0.5 - some of the formats above fail here. 
String.Format( "{0:#,##0.##}", 12314 ); // 12,314
String.Format( "{0:#,##0.##}", 12314.23123 ); // 12,314.23
String.Format( "{0:#,##0.##}", 12314.2 ); // 12,314.2
String.Format( "{0:#,##0.##}", 1231412314.2 ); // 1,231,412,314.2

32
2017-07-09 23:43



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

Eso te dará comas en los puntos relevantes.


31
2017-09-19 21:29



Si desea forzar un separador "," independientemente de la cultura (por ejemplo, en un seguimiento o mensaje de registro), el siguiente código funcionará y tiene el beneficio adicional de decirle al siguiente tipo que tropieza exactamente con lo que está haciendo.

int integerValue = 19400320; 
string formatted = string.Format(CultureInfo.InvariantCulture, "{0:N0}", integerValue);

conjuntos formateados a "19,400,320"


19
2018-03-27 19:55



La respuesta más votada fue excelente y ha sido útil durante aproximadamente 7 años. Con la introducción de C # 6.0 y específicamente la interpolación de cadenas, hay una manera más ordenada e IMO más segura de hacer lo que se ha pedido. to add commas in thousands place for a number:

var i = 5222000;
var s = $"{i:n} is the number"; // results to > 5,222,000.00 is the number
s = $"{i:n0} has no decimal"; // results to > 5,222,000 has no decimal

Donde la variable i  se pone en lugar del marcador de posición (es decir {0}) Por lo tanto, no es necesario recordar qué objeto va a qué posición. El formateo (es decir :n) no ha cambiado. Para una característica completa de las novedades, puede ir a esta página.


19
2017-08-12 02:51



El siguiente ejemplo muestra varios valores formateados con cadenas de formato personalizadas que incluyen marcadores de posición cero.

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

O

29255.0.ToString("N1")

resultado "29,255.0"

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

O

29255.0.ToString("N2")

resultado "29,255.00"


15
2018-02-23 15:00



tan simple como esto:

float num = 23658; // for example 
num = num.ToString("N0"); // Returns 23,658

más información está en aquí


15
2017-08-24 05:08