2010-05-17 20 views
6

¿Hay una manera fácil de transformar 1000000 en 1.000.000? Un formato regex o de cadena en asp.net, C#Separar números largos por 3 dígitos

+0

se trata de un número o una cadena para empezar? –

+0

Si está usando. en lugar de, para adaptarse a la cultura local, vea mi respuesta a continuación ... – egrunin

+0

Nota peronal: http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm –

Respuesta

10

Puede utilizar ToString junto con una cadena de formato y un proveedor de formato que utiliza como un separador de grupo y define que el número debe ser agrupados en grupos de 3 dígitos (que no es el caso para todas las culturas):

int number = 1000000; 
Console.WriteLine(number.ToString("N0", new NumberFormatInfo() 
              { 
               NumberGroupSizes = new[] { 3 }, 
               NumberGroupSeparator = "." 
              })); 
+0

¡Eso es genial! – RichK

+2

Cool no siempre implica que sea correcto. La solución de egrunin es mucho mejor ya que es la forma "global" adecuada. Por supuesto, no sabemos realmente qué quería el OP :) –

3
1000000.ToString("N0") 
+0

value.ToString ("N0").Reemplazar(',','.'); Hace el truco. También coma o punto proviene de la configuración del separador del sistema. Para cualquier caso, estoy reemplazando la coma por un punto. Gracias. –

+0

Aunque no funcionará en la India (no se agrupan en grupos de 3 dígitos) –

+0

@Fredrik, funcionará de acuerdo con la configuración regional, sean lo que sean –

4

Usando ToString("N") después convertirá 1.000.000 y 1.000.000. No estoy seguro. aunque

+3

Eso probablemente dependerá de la configuración cultural. En Turquía, debe usar puntos por defecto en lugar de comas, por lo que debería estar bien. –

4

Creo que estás preguntando por el formato específico de la cultura. Esta es la forma en español, por ejemplo: ''

1000000.ToString("N", CultureInfo.CreateSpecificCulture("es-ES")); 
Cuestiones relacionadas