2012-08-14 28 views
8

¿Hay alguna manera de dividir un número doble en java para que todos los grupos de 3 dígitos se dividan con un espacio y solo aparezcan 2 dígitos después de una coma? Es fácil separarlos con una coma:Dividir dígitos con espacios por grupos de 3 en java

DecimalFormat df = new DecimalFormat("###,###.00"); 
df.format(number); 

Para que 235235.234 convierte en 234,234.23

Lo que necesito es 234 234.23

¿Cómo puedo hacer eso?

Respuesta

17

Creo que la coma en su cadena de formato no es realmente una coma - es solo el símbolo de agrupación en el DecimalFormatSymbols que está utilizando.

Prueba esto:

// TODO: Consider specifying a locale 
DecimalFormatSymbols symbols = new DecimalFormatSymbols(); 
symbols.setGroupingSeparator(' '); 
DecimalFormat df = new DecimalFormat("###,###.00", symbols); 

O como una alternativa para la última línea:

DecimalFormat df = new DecimalFormat(); 
df.setDecimalFormatSymbols(symbols); 
df.setGroupingSize(3); 
df.setMaximumFractionDigits(2); 
+0

Muchas gracias, Jon Skeet =) – Sergey

+2

@Sergey En realidad, no relacionadas con esta pregunta/respuesta, pero Existe un truco conocido como liitle para mejorar la legibilidad de los literales numéricos en java 7 y posterior, al usar '_' para separar grupos. Ejemplo: 'público final estático largo SUNDIAMETER = 1_390_000_000L;' –

Cuestiones relacionadas