2009-12-09 18 views
6

Cómo mostrar un número numérico en grupos de 3 dígitos.Cómo mostrar el número en una agrupación de 3 dígitos

Por Ej: 1234 ser 1,234 o 1 234

+0

posible duplicado de [.NET String.Format() para agregar comas en lugar miles para un número] (http://stackoverflow.com/questions/105770/net-string-format-to-add-commas-in-thousands-place-for-a-number) – Helen

Respuesta

10

Prueba esto:

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

Si desea espacios en lugar de comas intente esto:

String.Format("{0:n0}", yourNumber).Replace(",", " "); 

Editar: Marc hace un buen punto acerca de ser consciente de lo cultural, así que esta sería una mejor manera de reemplazar el grupo separat ors:

String.Format("{0:n0}", yourNumber) 
    .Replace(NumberFormatInfo.CurrentInfo.NumberGroupSeparator, " "); 
5

La caja de la coma es bastante fácil - .ToString("###,###,###"); por el espacio? tal vez hacer trampa y reemplazar las comas? ¿O escribir una cultura personalizada con espacio como separador de grupo?

Tenga en cuenta también que esto depende de la cultura. La coma de arriba no significa "coma", significa el separador de grupos de la cultura. Es posible que desee especificar una cultura fija si esto es importante (tal vez la cultura invariante).

+0

+1 Buen punto sobre la cultura- dependencia. –

2

Puede utilizar

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

o

yourDecimal.ToString("#,##0.00"); 

de cifras decimales.

+1

Esta es una excelente solución. Gracias. – Fanda

+0

La solución más simple y directa. – digz6666

12

Desde el La numérico ("N") especificador de formato sección en Standard Numeric Format Strings:

double dblValue = -12445.6789; 
Console.WriteLine(dblValue.ToString("N", CultureInfo.InvariantCulture)); 
// Displays -12,445.68 

Console.WriteLine(dblValue.ToString("N1", 
        CultureInfo.CreateSpecificCulture("sv-SE"))); 
// Displays -12 445,7 

int intValue = 123456789; 
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture)); 
// Displays 123,456,789.0 
+6

"N1" agregará lugares decimales, "n0" los cortará, lo que parece ser lo que el OP está buscando. –

1

Compara los:

.ToString("#,##0", new System.Globalization.CultureInfo("en-US")) 

.ToString("#,##0", new System.Globalization.CultureInfo("fr-FR")) 

.ToString("#,##0", new System.Globalization.CultureInfo("de-DE")) 

.ToString("#,##0") 

espero que le ayudará.

1

puede simplemente usar Visual Basic TriState para ello Por ejemplo: formato

textBox1.Text = Microsoft.VisualBasic.Strings.FormatNumber(textBox1.Text, 0, TriState.True); 

cadena no era lo que necesitaba! ¡pero este hizo lo que yo quería! esperemos que resuelve su problema también :)

1

uso este código de ejemplo:

int test1 = 123456; 
string test2 = test1.ToString("N0"); 

salida = 123456

Cuestiones relacionadas