Boa noite pessoal,
preciso transformar uma String em Double.
O problema não é a transformação padrão, eu preciso transformar uma String do tipo "25.3"
em sua equivalente em double: 25.3
Logo, não é apenas uma transformação de String em Double, mas a leitura também de quando há e se há vírgula nesta.
@FabioMenezes boa noite.
Antes de fazer a conversão de String para Double faz um replace na variável String para trocar a vírgula por ponto, caso seja.
suaVariavel.replace(",",".")
Espero que seja isso o problema.
use java.text.NumberFormat e especifique qual o Locale que vc quer usar.
http://docs.oracle.com/javase/6/docs/api/java/text/NumberFormat.html
NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);
Number number = format.parse("1,234");
double d = number.doubleValue();
fazer replace resolve. mas vc pode ter surpresas.
@peczenyj valeu pela dica, sempre usava o replace e como nunca tive problemas achava que sempre daria certo. Que tipos de surpresas pode ocorrer?
Numero com separador de milhar por exemplo
1.234,56
Tem a questão de portabilidade também. Se o software for rodar em outro pais vc pode ajudar o Locale uma vez só