Tenho uma variavel float RendaMensal e preceiso que ela receba milhares ex: 1.500,25. Qual a solução para isso?
O erro acontece aki:
cli.setRdMensal(Float.parseFloat(txRdMensal.getText()));
exeção:
Exception in thread “AWT-EventQueue-0” java.lang.NumberFormatException: For input string: “1.500,25”
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
Tentei usar o padrão ingles tbm no caso: 1,500.25 e tbm não adiantou;
Qual a solução para isso?
Vc precisa antes dizer que esse formato que vc está usando deve ser levado em consideração. Para isso, use a classe NumberFormat:
NumberFormat format = NumberFormat.getInstance(new Locale("pt", "BR")); // isso se for sempre com os delimitadores de acordo com nosso locale
Number parsed = format.parse("1.500,25");
Usa essa classe como exemplo:
public class FloatClasse {
public static void main(String[] arg){
String aux="1500.25";
Double stringDouble=Double.parseDouble(aux);
System.out.println("o valor passado eh "+stringDouble);
}
}
Otavio, ele precisa do delimitador de milhar (o ponto).
Então desculpa.
Realmente a solução que vc deu Adriano é realmente é a melhor opção.
Ta mais dai eu vo te que usa variavel double pra recebe esse parsed?
É isso mesmo?
Num tem como fazer com float?