Não consigo fazer a conversão do que é capturado no campo que usuario digita e transformalo em float e fazer a conta que preciso para jogar no banco. O cógio é esse:
Stringvalor_total,quat_parc,valor_parc_s=null;floatvalor_f,parc_f=0;intquant_i;if(valor.getText().trim().equals("")){JOptionPane.showMessageDialog(null,"Campo Valor Obrigatório!");valor.requestFocus();}else{//Pegandoasvariaveisnocampovalor_total=valor.getText();quat_parc=(String)quant_parc.getSelectedItem();//Transformandoasvariaveisparaserjogadonobancoquant_i=Integer.parseInt(quat_parc);valor_f=Float.parseFloat(valor_total);if(quant_i>0){parc_f=valor_f/quant_i;}else{JOptionPane.showMessageDialog(null,"Não é possivel fazer divisão por zero!!!","ERRO",JOptionPane.ERROR_MESSAGE);quant_parc.requestFocus();}valor_parc_s=String.valueOf(parc_f);valor_parc.setText(valor_parc_s);}
publicstaticStringreplaceAll(Strings,StringoldString,StringnewString){if(oldString==null||oldString.length()==0)returns;StringBuffersb=newStringBuffer(s);//-- Retorno intposS,posS2;//-- Posição em s intposSb;//-- Posição em sb intsLength=s.length();intoldStringLength=oldString.length();intnewStringLength=newString.length();posS=0;posSb=0;while(posS>=0&&posS<sLength){posS2=s.indexOf(oldString,posS);if(posS2>=0){posSb+=posS2-posS;sb.replace(posSb,posSb+oldStringLength,newString);posS2+=oldStringLength;posSb+=newStringLength;}posS=posS2;}returnsb.toString();}
Assim :D
B
Bruno_Laturner
Talvez um
NumberFormat nf = NumberFormat.getInstance(new Locale("pt", "BR"));
double n = nf.parse(string).doubleValue();
Eduardo_Bregaida
Bruno Laturner:
Talvez um
NumberFormat nf = NumberFormat.getInstance(new Locale("pt", "BR"));
double n = nf.parse(string).doubleValue();
Pode usar o
DecimalFormat
:D
EDIT: Será q o Willdoidao anda lendo ou nós estamos enchendo de soluções e ele já achou 1??? :?
B
Bruno_Laturner
O JavaDoc da API fala p/ não tentar usar DecimalFormat diretamente pelo construtor, parece que o getInstance (e afins) do NumberFormat já faz todo o trabalho de escolher a implementação.
É no mínimo estranha as implementações que eles dão como exemplo, checar se a classe retornada é uma instância de DecimalFormat, p/ poder usar os métodos específicos, nem parece POO.
eduveks
Eduardo Bregaida:
eduveks:
Eduardo Bregaida:
eduveks:
Provavelmente vc esta usando "," em vez de ".", o Float.parseFloat só converte strings q tenham ".", exemplo "1.21" e não "1,21".
publicstaticStringreplaceAll(Strings,StringoldString,StringnewString){if(oldString==null||oldString.length()==0)returns;StringBuffersb=newStringBuffer(s);//-- Retorno intposS,posS2;//-- Posição em s intposSb;//-- Posição em sb intsLength=s.length();intoldStringLength=oldString.length();intnewStringLength=newString.length();posS=0;posSb=0;while(posS>=0&&posS<sLength){posS2=s.indexOf(oldString,posS);if(posS2>=0){posSb+=posS2-posS;sb.replace(posSb,posSb+oldStringLength,newString);posS2+=oldStringLength;posSb+=newStringLength;}posS=posS2;}returnsb.toString();}
Assim :D
Só uma dúvida... pra q esta tralha toda!? E por q o replace não dá?!... :shock:
Mas claro q usar o NumberFormat ou o DecimalFormat é uma prática melhor... mas esta do replace realmente me intriga pra q tanta complicação!?
Implementar um replaceAll!? Mais arcaico impossível... Por acaso ainda estão usando o java 1.3 !? lol