Problema com NumberFormat & DecimalFormat

Ola pessoal, estou com um pequeno problema que é o seguinte:

Eu tenho um TextField que recebe um valor numerico, por exemplo: 200

eu quero formata-lo para R$ 2,00 e estou fazendo da seguinte forma:

[code]
double d = 2.00;

NumberFormat nFormat = NumberFormat.getCurrencyInstance(new Locale(“pt”, “BR”));

nFormat.format(d);[/code]

Dessa forma ele me retorna o seguinte valor: R$ 2
e some com os zeros dos centavos, agora caso o valor do double seja igual a 2.43 ele me retorna exatamente o que eu quero, que seria = R$ 2,43

A outra forma seria usando DecimalFormat que usei dessa forma:

  double = 2.00;

DecimalFormat dFormat = new DecimalFormat("0.00", new DecimalFormatSymbols(new Locale("pt", "BR"));

dFormat.setPositivePrefix(dFormat.getDecimalFormatSymbols().getCurrencySymbols());

dFormat.format(d);

Dessa forma ele me retorna R$2,00, mas tem um porém, quando o valor é acima de de 1000 ele me retorna R$1000,00 e não R$1.000,00.

Alguem tem uma dica ae???

Abraços a todos!!

Tenta com o DecimalFormat com a seguinte máscara:

#,##0.00

Fallow

tentei dessa forma, mas quando eu coloquei um valor menor q #.##0.00 da um NullPointException!!!

O primeiro sinal é virgula e não ponto!!!