estou tentando transformar uma string em um double com o codigo abaixo:
String str3 = valorpretendido.getString();
f = 0;
f = Double.parseDouble(str3);
mas quando mando compilar ele apresenta o sequinte erro:
C:\WTK25\apps\ProjetoWill\src\ProjetoWill.java:160: cannot find symbol
symbol : variable Double
location: class ProjetoWill
f = Double.parseDouble(str3);
^
O que ta errado???
Muitas vezes o compilador se confunde e dá a mensagem errada. Por acaso você declarou a variável f?
String str3 = valorpretendido.getString();
double f = 0;
f = Double.parseDouble(str3);
M
maquiavelbona
Declaraste f em algum lugar ou somente colocou-o ali?
Eu acho que o correto seria:
String str3 = valorpretendido.getString();
double f = 0;
f = Double.parseDouble(str3);
Obs.: Utilize a tag CODE quando for colocar código.
Até!
W
WillEndiabrado
A variável f foi declarada sim, no construtor.
M
maquiavelbona
Coloque o código inteiro então para poder haver uma análise mais apurada.
Até!
W
WillEndiabrado
La vai o codigo.
importjavax.microedition.lcdui.*;importjavax.microedition.midlet.*;importjava.lang.Math;publicclassProjetoWillextendsMIDletimplementsCommandListener{Displaytela;Formlogin,resultado;TextFieldperiodo,valordepositado,valorpretendido;StringItemresultadoMsg;Commandsair,proximo;Stringteste,teste2;intn,varValor1,varValor2,varResult;doublep,f;doubleresult1,result2,result3,result4;publicProjetoWill(){// inicializar Commandsthis.sair=newCommand("Sair",Command.EXIT,0);this.proximo=newCommand("Prox",Command.SCREEN,1);// form de loginthis.login=newForm("Login");this.periodo=newTextField("periodo:","",20,TextField.ANY);this.valordepositado=newTextField("valordepositado:","",20,TextField.ANY);// | TextField.PASSWORD);this.valorpretendido=newTextField("valorpretendido:","",20,TextField.ANY);//adiciona-se os componentes ao Form Loginthis.login.append(this.periodo);this.login.append(this.valordepositado);this.login.append(this.valorpretendido);this.login.addCommand(this.sair);this.login.addCommand(this.proximo);this.login.setCommandListener(this);// form de resultadothis.resultado=newForm("Resultado");this.resultadoMsg=newStringItem("","");//adiciona-se o componente ao Form Resultadothis.resultado.append(this.resultadoMsg);this.resultado.addCommand(this.sair);this.resultado.setCommandListener(this);}publicvoidsetperiodo(){}publicdoubleexp(doublex,inty){doubleaux;inti;aux=1;i=1;while(i==y){aux=aux*x;}result4=aux;returnresult4;}publicdoublefunc(doublei,doublew,intn){doubleaux;doubleaux2;aux=i+1;aux2=exp(aux,n);doubleresult3=(aux2-(w*i))-1;returnresult3;}publicdoubledevfunc(doublei,doublew,intn){intaux;doubleaux1;doubleaux3;aux1=1+i;aux=n-1;aux3=exp(aux1,aux);result2=(n*aux3)-w;returnresult2;}publicdoubleraphson(intn,doublep,doublef){intk=1;intmaxint=100;doubleerro=0.1;doubleprecisao=0.000001;doublew=f/p;doublei=100;doublefa=func(i,w,n);while((erro>precisao)&&(k<maxint)){fa=func(i,w,n);doubledevfa=devfunc(i,w,n);doubleresult1=i-(fa/devfa);erro=(i-result1);i=result1;k+=1;}returnresult1;}publicvoidstartApp(){this.tela=Display.getDisplay(this);this.tela.setCurrent(this.login);}publicvoidpauseApp(){}publicvoiddestroyApp(booleancondicional){}publicvoidcommandAction(Commandc,Displayabled){if(c==this.sair){this.destroyApp(true);this.notifyDestroyed();}Stringstr1=periodo.getString();Stringstr2=valordepositado.getString();Stringstr3=valorpretendido.getString();n=0;p=0;doublef=0;n=Integer.parseInt(str1);p=Double.parseDouble(str2);f=Double.parseDouble(str3);doublevarResult=raphson(n,p,f);if(c==this.proximo){//O Label sempre aparecerá antes do Text não importando//a ordem que vc adicione ele ao componente//faça o teste trocando de ordem as chamdas.//teste = "opa"; this.resultadoMsg.setLabel("O Resultado é: "+varResult);//this.periodo.getString()+" ");//this.resultadoMsg.setText(this.valordepositado.getString());this.tela.setCurrent(this.resultado);}}}
A
analyser
Declare e variavel f
T
thingol
Bom, ponha o resto do código.
Mas um chute: se a variável foi declarada local no construtor (como você mesmo disse), então ela é local e não poderá ser vista (acessada) no resto do código. Então você terá de declarar a variável como uma variável de instância (argh).
W
WillEndiabrado
Olha ja tentei tb declarando a variável e não passa.
double nova = 0;
nova = Double.parseDouble(str3);
e outra coisa no mesmo trecho tenho outra variavel so que integer fazendo no caso um parseInt:
n = Integer.parseInt(str1);
e passa normal???
R
ricardosoares
o problema não é o: f = Double.paseDouble(str3);
e sim o que vem antes: double f = 0;
tem que ser: double f = 0D;
W
WillEndiabrado
Não funcionou não Ricardo.
G
gustavo_apsilva
Pergunta imbecil…
Double é suportado em midlets?
M
maquiavelbona
CLDC 1.1 suporta double.
W
WillEndiabrado
Gustavo,
não intendi o que vc disse.
sou iniciante em j2me por isso a pergunta pode ser boba.
mas foi para aprender um pouco mais que mim cadastrei nesse fórum.
Midlets não aceita double???
???
M
maquiavelbona
Todo aplicativo JavaME depende de duas características:
CLDC/CDC;
MIDP;
O que te importa agora é saber se seu aplicativo está para ser rodado em CLDC 1.1.
Até!
W
WillEndiabrado
Isso isso isso o CLDC é 1.1.
M
maquiavelbona
Caso não fosse CLDC 1.1 ou CDC, teria ocorrido erro de compilação por que ele não reconheceria nenhum tipo com ponto flutuante.