Pessoal estou tendo problemas com uma rotina feita para transformar um valor real (R$) em Double, para poder fazer cálculos.
public Double TransformarRealEmDouble(String valor){
NumberFormat instance = DecimalFormat.getInstance(new Locale("pt", "BR"));
instance.setMaximumFractionDigits(2);
Double auxvalor;
try {
auxvalor = (Double) instance.parse(valor);
return auxvalor;
} catch (ParseException ex) {
Logger.getLogger(JModulo.class.getName()).log(Level.SEVERE, null, ex);
return 0.0;
}
}
Essa é a rotina, ela transformaria basicamente assim:
Uma string “5,5” em um Double “5.5”
Ela funciona perfeitamente com 5,5 / 5,1 / 5,05… mais sempre que tento botar 5,0 ou somente um 5 que já demonstraria direto como se fosse 5 reais ela da erro.
Estou fazendo este teste:
String a = "5,0";
Double b = jm.TransformarRealEmDouble(a);
System.out.println(b);
E o erro e este:
Exception in thread "main" java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Double
at sip.JModulo.TransformarRealEmDouble(JModulo.java:84)
at sip.Teste.main(Teste.java:24)
Java Result: 1
Não sei oque pode ser… alguém me ajuda?