Converter mascara ###.###,## para float ######.##

1 resposta
nocland

Pessoal estou com um problema básico, tenho uma entrada de dados com maskara
###.###,## e tenho que fazer uma soma pra isso tenho que tirar a maskara
pois esta dando um erro pelo fato da virgula, além de ter de gravar no banco de dados.
Consegui fazer ###,## virar ###.## com o seguinte codigo:

DecimalFormat formato = new DecimalFormat("0.00");   
        	  String valor = valorField.getText();   
        	           
        	  try {   
        	      float dValor = formato.parse(valor).floatValue();   
        	      total_caixa=total_caixa+dValor;
        	  } catch (Exception e) {   
        	      e.printStackTrace();   
        	  }  

        	//total_caixa=total_caixa;
        	totalField.setText(String.valueOf(total_caixa));

Mas se o Usuário digitar o valor 12.547,47 por exemplo, não soma porque ele não entra no try.
Se alguém puder resolver meu problema ficarei bastante agradecido.
De: André Belém

1 Resposta

edilson_x

antes de dar o try, retire a virgula da string e substitua por um ponto

String valor = valorField.getText().replace(",",".");     
              
   try {     
       float dValor = formato.parse(valor).floatValue();     
       total_caixa=total_caixa+dValor;  
   } catch (Exception e) {     
       e.printStackTrace();     
   }
Criado 8 de outubro de 2007
Ultima resposta 8 de out. de 2007
Respostas 1
Participantes 2