(RESOLVIDO) Erro quando vou converter virgula para ponto - String para double

Esta acontecendo um erro ao converter um valor que recebo num JTextField para double. Quando digito um valor com centavos tipo “10,50” esta funcionando corretamente, converte para “10.50”, porém quando digito “10” ou “10,00” acontece o erro. Meu código é o seguinte:

String v = jTextField1.getText();
DecimalFormat dff = (DecimalFormat) DecimalFormat.getInstance();
Double valor = null;
try {
    valor = (Double) dff.parse(v);
} catch (ParseException ex) {
    Logger.getLogger(Formulario.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println(valor);

ai acontece o seguinte erro:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Double
        at Main.Formulario$1.actionPerformed(Formulario.java:68)

Troque

valor = (Double) dff.parse(v);

por

valor = dff.parse(v).doubleValue();

http://java.sun.com/javase/6/docs/api/java/lang/Number.html#doubleValue()

De acordo com a documentação do método parse, se isParseBigDecimal() retorna false, o método sempre retornará objetos da classe Long. Tanto “17” quanto “17.000” retornam Long(17). O método não checa pela presença separadores decimais para decidir se deve retornar Long ou Double.

Se isParseBigDecimal() retorna true, o método retornará um BigDecimal, que é muito superior ao Double.

Para resolver o problema:

[code]String v = jTextField1.getText();
DecimalFormat dff = (DecimalFormat) DecimalFormat.getInstance();
dff.setParseBigDecimal(true);
BigDecimal valor = null;

try {
valor = (BigDecimal) dff.parse(v);
} catch (ParseException ex) { /* Tratar exception */ }[/code]
ou…

[code]String v = jTextField1.getText();
DecimalFormat dff = (DecimalFormat) DecimalFormat.getInstance();
Number valor = null;

try {
valor = dff.parse(v);
} catch (ParseException ex) { /* Tratar exception */ }

// Pegar o valor

double d = valor.doubleValue();
long l = valor.longValue();
int i = valor.intValue();[/code]

valeu galera! obg