importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){funcaoRecursiva();}privatestaticfloatvalor=0;privatestaticvoidfuncaoRecursiva(){try{Scannerdados=newScanner(System.in);System.out.println("Digite o valor");valor=dados.nextFloat();}catch(Exceptione){System.out.print("Vc não digitou um numero");funcaoRecursiva();}}}
felipealbuquerque
Primeiro crie um código para encapsular a validação, pois, assim, você pode utilizá-lo em outros lugares sem repetir o código. Depois, é só chamá-lo. Segue o exemplo:
/*ValidaçãodeFloat*/publicbooleanisFloat(Stringstring){try{Float.parseFloat(string);returntrue;}catch(NumberFormatExceptionnumberFormatException){returnfalse;}}/*Chamada*/if(isFloat(jTextField.getText())){// lançar a exception}
rosawestphal
oi tentei fazer os codigos que vocês me ensinaram mas nao esta dando certo abaixo como fiz:
nachamada:if(isFloat(jTFPSATotal.getText())){try{floatprobHibridoCancer=((probPTCancer)/(pertPsaTotal));<ahref="//jTFCancer.setText">//jTFCancer.setText</a>(String.valueOf(round2(probHibridoCancer, 3)));<ahref="//System.out.println">//System.out.println</a>("\n A probabilidade de ter cancer de prostata eh" + probHibridoCancer);
floatprobHibridoHpb=((probPTHpb)/(pertPsaTotal));//jTFHPB.setText(String.valueOf(round2(probHibridoHpb, 3)));//System.out.println("\n A probabilidade de ter cancer de prostata eh" + probHibridoHpb);floatteste[]=newfloat[2];teste[0]=probHibridoCancer;teste[1]=probHibridoHpb;System.out.println(teste[0]);System.out.println(teste[1]);Nodenode=net.getNode("DOENCAS");node.setCPTable(teste);}catch(NumberFormatExceptioney){JOptionPane.showMessageDialog(null,"Voce digitou um numero errado, favor rever!!");ey.printStackTrace();}}
andredeividi
if(isFloat(jTFPSATotal.getText())){floatprobHibridoCancer=((probPTCancer)/(pertPsaTotal));// jTFCancer.setText(String.valueOf(round2(probHibridoCancer,// 3)));// System.out.println("\n A probabilidade de ter cancer de// prostata eh" + probHibridoCancer);floatprobHibridoHpb=((probPTHpb)/(pertPsaTotal));// jTFHPB.setText(String.valueOf(round2(probHibridoHpb, 3)));// System.out.println("\n A probabilidade de ter cancer de// prostata eh" + probHibridoHpb);floatteste[]=newfloat[2];teste[0]=probHibridoCancer;teste[1]=probHibridoHpb;System.out.println(teste[0]);System.out.println(teste[1]);Nodenode=net.getNode("DOENCAS");node.setCPTable(teste);}else{JOptionPane.showMessageDialog(null,"Voce digitou um numero errado, favor rever!!");}
rosawestphal
não estou conseguindo ainda, ele nao mostra a mensagem e da erro no codigo…
andredeividi
qual é o erro?
coloca seu codigo novamente.
rosawestphal
este é o erro:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "2,6"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
achamada:if((isFloat(psatotal))&&(isFloat(densidade))){if(psatotal<=a){grauTotalMenor=1f;jTFResPTMe.setText(String.valueOf(round2(grauTotalMenor,3)));System.out.println("\n A probabilidade de ter HPB eh"+grauTotalMenor);}elseif((a<psatotal)&&(psatotal<b)){grauTotalMenor=(((b-psatotal)/(b-a)))*100;jTFResPTMe.setText(String.valueOf(round2(grauTotalMenor,3)));System.out.println("\n A probabilidade de ter PSA eh"+grauTotalMenor);}elseif(psatotal>=b){grauTotalMenor=0f;jTFResPTMe.setText(String.valueOf(round2(grauTotalMenor,3)));}
maiscodigoainda....
}else{
JOptionPane.showMessageDialog(null,"Voce digitou um numero errado, favor rever!!");}
andredeividi
Amiga edit seu post e selecione o seu codigo e coloque a tag CODE logo acima
como na imagem
if (){
}else{
}
Fica melhor para leitura.
rosawestphal
este é o erro:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "2,6"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
if((isFloat(psatotal))&&(isFloat(densidade))){
if ( psatotal <= a){
grauTotalMenor = 1f;
jTFResPTMe.setText(String.valueOf(round2(grauTotalMenor, 3)));
System.out.println("\n A probabilidade de ter HPB eh" + grauTotalMenor);
} else if ((a < psatotal ) && (psatotal < b)){
grauTotalMenor = (((b - psatotal) / (b - a)))*100;
jTFResPTMe.setText(String.valueOf(round2(grauTotalMenor, 3)));
System.out.println("\n A probabilidade de ter PSA eh" + grauTotalMenor);
} else if (psatotal >= b){
grauTotalMenor = 0f ;
jTFResPTMe.setText(String.valueOf(round2(grauTotalMenor, 3)));
}
mais codigo ainda....
} else{
JOptionPane.showMessageDialog(null, "Voce digitou um numero errado, favor rever!!";
}
rosawestphal
este é o erro:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "2,6"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
privatebooleanisFloat(floatx){try{Float.parseFloat(string);returntrue;}catch(NumberFormatExceptionnumberFormatException){returnfalse;}}achamada:if((isFloat(psatotal))&&(isFloat(densidade))){if(psatotal<=a){grauTotalMenor=1f;jTFResPTMe.setText(String.valueOf(round2(grauTotalMenor,3)));System.out.println("\n A probabilidade de ter HPB eh"+grauTotalMenor);}elseif((a<psatotal)&&(psatotal<b)){grauTotalMenor=(((b-psatotal)/(b-a)))*100;jTFResPTMe.setText(String.valueOf(round2(grauTotalMenor,3)));System.out.println("\n A probabilidade de ter PSA eh"+grauTotalMenor);}elseif(psatotal>=b){grauTotalMenor=0f;jTFResPTMe.setText(String.valueOf(round2(grauTotalMenor,3)));}maiscodigoainda....}else{JOptionPane.showMessageDialog(null,"Voce digitou um numero errado, favor rever!!";}
andredeividi
O valor que vc esta colocando é “2,6” tente 2.6
ponto e não virgula.
rosawestphal
mas é essa a intenção se o usuario colocar , aparece uma janela dizendo que somente aceita numeros com ponto…
andredeividi
Agora acho que vai
if(isFloat("1,3")){JOptionPane.showMessageDialog(null,"Voce digitou um numero");//float probHibridoCancer = ((probPTCancer) / (pertPsaTotal));// jTFCancer.setText(String.valueOf(round2(probHibridoCancer, 3)));// System.out.println("\n A probabilidade de ter cancer de prostata// eh" +// probHibridoCancer);// float probHibridoHpb = ((probPTHpb) / (pertPsaTotal));// jTFHPB.setText(String.valueOf(round2(probHibridoHpb, 3)));// System.out.println("\n A probabilidade de ter cancer de prostata// eh" +// probHibridoHpb);/* * float teste[] = new float[2]; teste[0] = probHibridoCancer; * teste[1] = probHibridoHpb; System.out.println(teste[0]); * System.out.println(teste[1]); Node node = net.getNode("DOENCAS"); * node.setCPTable(teste); */}else{JOptionPane.showMessageDialog(null,"Voce digitou um numero errado, favor rever!!");}}publicstaticbooleanisFloat(Stringstring){try{Float.parseFloat(string);returntrue;}catch(NumberFormatExceptionnumberFormatException){returnfalse;}}