NumberFormat eh uma classe tao procurada (se nao mais) quanto a SimpleDateFormat:
java.text.NumberFormat
para usar o padrao do sistema voce pode usar os seguintes metodos:
// para inteiro
String integer = java.text.NumberFormat.getIntegerInstance().format(valorvemaqui)
// para porcentagem
String percent = java.text.NumberFormat.getPercentInstance().format(valorvemaqui)
entre outros....
para formatar um numero use o seguinte codigo
double numero = 15.4739;
java.text.NumberFormat nf = java.text.NumberFormat.getInstance();
String formatado = nf.format(numero);
entre a segunda e a terceira linha voce pode configurar o formatador!
void setMaximumFractionDigits(int newValue)
Sets the maximum number of digits allowed in the fraction portion of a number.
void setMaximumIntegerDigits(int newValue)
Sets the maximum number of digits allowed in the integer portion of a number.
void setMinimumFractionDigits(int newValue)
Sets the minimum number of digits allowed in the fraction portion of a number.
void setMinimumIntegerDigits(int newValue)
Sets the minimum number of digits allowed in the integer portion of a number.
Esses quatro metodos setam os parametros de numeros antes e depois do ponto decimal.
E para setar o agrupador:
public void setGroupingUsed(boolean newValue)
Set whether or not grouping will be used in this format.
Esse seta a virgula a cada tres casas decimais.
No seu exemplo voce citou um numero formatado de um jeito mas descreveu outro (virgulas e pontos e nao pontos e virgulas).
O agrupador soh pode ser configurado atraves de um Locale (configuracao regional).... entao tente na hora de criar o formatador utilizar o seguinte metodo:
NumberFormat nf = NumberFormat.getInstance(Locale.ENGLISH);
Esse codigo cria um formatador padrao ingles que eh com virgulas como separador de 3 digitos e ponto decimal.
espero ter ajudado...
Guilherme Silveira