2012-01-27 20 views
10

DecimalFormat usa ',' como el carácter separador de agrupación predeterminado.no separador de agrupación char para DecimalFormat

¿Cuál es la forma correcta de decirle a DecimalFormat que no queremos ningún carácter separador de agrupación? Actualmente uso symbols.setGroupingSeparator ('\ 0'), y parece funcionar, , pero se ve feo.

DecimalFormatSymbols symbols = new DecimalFormatSymbols(); 
symbols.setDecimalSeparator('.'); 
symbols.setGroupingSeparator('\0'); 

DecimalFormat df = new DecimalFormat(); 
df.setDecimalFormatSymbols(symbols); 

ParsePosition pp = new ParsePosition(0); 
Number result = df.parse("44,000.0", pp); // this should fail, as I don't want any grouping separatator char. 
if (pp.getIndex() != input.length()) 
    throw new Exception("invalid number: " + input, 0); 

¿Cuál es la forma correcta de decirle a DecimalFormat que no queremos que se agrupe ningún separador?

+0

¿Es una mala práctica para establecer el separador de grupo a '\ 0'? –

Respuesta

2

Puede usar el método setGroupingUsed(), pero eso no hará que el formato rechace el número, simplemente dejará de analizar en el primer separador. El análisis de números con formatos ignorará todo después del primer carácter no válido.

Cuestiones relacionadas