Estou tentando converter um valor String do meu List para Double no meu jsp.
Fiz assim: (desse jeito não dá certo). Double.parseDouble(listResumo.get(1).getSoma());
Esta errado o que eu estou fazendo? Precisa importar algum pacote para o meu jsp?
Li um post aqui no guj falando que double não tem precisão, e estou converterndo valores monetários. Se double é mesmo sem precisão, qual tipo então devo usar?
Está dando algum erro ou simplesmente não funciona?
A
Artur_Drummond
Que erro que está dando ? É Exception ?
Coloca o os detalhes pra gente poder te ajudar .
E
Ellensmp
O problema é que eu fazia assim:
Double.parseDouble(listResumo.get(1).getSoma());
E não sei porque mas não pode especificar o 1… fiz um for e fiz assim:
Double.parseDouble(listResumo.get(iR).getSoma());
Mas agora estou com outro problema, tento converter a String com o valor 22424576.24 e o valor vira 2.242457624E7
A
Artur_Drummond
Manda o for inteiro !
E coloca a exception que está ocorrendo também…
O 1 não influencia em nada. Ele apenas faz referencia ao elemento de uma determinada posição do ArrayList.
[]'s !
renamed
Ellensmp:
Mas agora estou com outro problema, tento converter a String com o valor 22424576.24 e o valor vira 2.242457624E7
Ele esta transformando corretamente, se você prestar atenção ele pegou 22424576.24 e transformou em notação científica 2.242457624 * 10(elevado a 7)
ok?
juniormaverick
Ellensmp, utiliza bigdecimal em vez de double que resolve seu problema. Veja o exemplo abaixo.
Manda o for inteiro !
E coloca a exception que está ocorrendo também…
O 1 não influencia em nada. Ele apenas faz referencia ao elemento de uma determinada posição do ArrayList.
[]'s !
Sim…mas quando o coloco dá erro… dentro ou fora do for da erro.
Quando eu coloco a variável é de boa… vai certinho.
E
Ellensmp
juniormaverick:
Ellensmp, utiliza bigdecimal em vez de double que resolve seu problema. Veja o exemplo abaixo.
Ellen … a gente precisa saber primeiro qual erro que está dando. Coloca o nome da exception e depois o código jsp pra gente…
juniormaverick
Cara, como você está pegando esta informação???
Se você está utilizando um model basta pegar o valor da variável que já foi setada no model, e realizar a conversão.
Faz o que o Artur Drummond, coloca o erro que está ocorrendo, a jsp, tudo que for possível.
E
Ellensmp
juniormaverick:
Cara, como você está pegando esta informação???
Se você está utilizando um model basta pegar o valor da variável que já foi setada no model, e realizar a conversão.
Faz o que o Artur Drummond, coloca o erro que está ocorrendo, a jsp, tudo que for possível.
Estou pegando este valor de uma query.
Não esta dando exception mais… somente qndo colocao numero 1 naquele indice do list.
E
Ellensmp
juniormaverick:
Cara, como você está pegando esta informação???
Se você está utilizando um model basta pegar o valor da variável que já foi setada no model, e realizar a conversão.
Faz o que o Artur Drummond, coloca o erro que está ocorrendo, a jsp, tudo que for possível.
quando coloco o 1 como indice e nao uma variavel ele dá o seguinte erro:
Ellensmp, agora acho que resolvemos, é o seguinte.
Você falou que utiliza uma query para buscar o registros, quando você colocar o numero 1 dá problema porque a query consultada retornou apenas um unico registro para o seu List. Qualquer list começa a partir do indice 0, se sua query retornou um list com apenas um unico registro o indice deste registro será zero, sendo assim quando você coloca o numero 1 dá problema porque não existe registro com este índice.
Já no caso da variável dá certo, pelo fato da variável começar no indice zero e percorrer apenas os índices existentes que no caso é até que seja menor que o tamanho da lista.
Veja o exemplo, onde coloquei 0 em vez de 1. A maneira correta é utilizar a variável em vez dos números.
importjava.math.BigDecimal;importjava.util.ArrayList;publicclassExemploBigDecimal{publicstaticvoidmain(String[]args){ArrayList<String>listResumo=newArrayList<String>();// Se colocar o ZERO irá pegar apenas este registro abaixolistResumo.add("22424576.24");// Se colocar o UM irá pegar apenas este registro abaixolistResumo.add("4576.22");// Se colocar o DOIS irá pegar apenas este registro abaixolistResumo.add("444576.21");for(intiR=0;iR<listResumo.size();iR++){// Se colocar a variável irá pegar todos os registros consultados e que estão no listBigDecimalb=newBigDecimal(listResumo.get(0));System.out.println(b);}}}
Entendeu???
E
Ellensmp
juniormaverick:
Ellensmp, agora acho que resolvemos, é o seguinte.
Você falou que utiliza uma query para buscar o registros, quando você colocar o numero 1 dá problema porque a query consultada retornou apenas um unico registro para o seu List. Qualquer list começa a partir do indice 0, se sua query retornou um list com apenas um unico registro o indice deste registro será zero, sendo assim quando você coloca o numero 1 dá problema porque não existe registro com este índice.
Já no caso da variável dá certo, pelo fato da variável começar no indice zero e percorrer apenas os índices existentes que no caso é até que seja menor que o tamanho da lista.
Veja o exemplo, onde coloquei 0 em vez de 1. A maneira correta é utilizar a variável em vez dos números.
importjava.math.BigDecimal;importjava.util.ArrayList;publicclassExemploBigDecimal{publicstaticvoidmain(String[]args){ArrayList<String>listResumo=newArrayList<String>();// Se colocar o ZERO irá pegar apenas este registro abaixolistResumo.add("22424576.24");// Se colocar o UM irá pegar apenas este registro abaixolistResumo.add("4576.22");// Se colocar o DOIS irá pegar apenas este registro abaixolistResumo.add("444576.21");for(intiR=0;iR<listResumo.size();iR++){// Se colocar a variável irá pegar todos os registros consultados e que estão no listBigDecimalb=newBigDecimal(listResumo.get(0));System.out.println(b);}}}
Entendeu???
Realmente… vc estava certo, começa com 0 mesmo!!!
E
Ellensmp
juniormaverick:
Ellensmp, agora acho que resolvemos, é o seguinte.
Você falou que utiliza uma query para buscar o registros, quando você colocar o numero 1 dá problema porque a query consultada retornou apenas um unico registro para o seu List. Qualquer list começa a partir do indice 0, se sua query retornou um list com apenas um unico registro o indice deste registro será zero, sendo assim quando você coloca o numero 1 dá problema porque não existe registro com este índice.
Já no caso da variável dá certo, pelo fato da variável começar no indice zero e percorrer apenas os índices existentes que no caso é até que seja menor que o tamanho da lista.
Veja o exemplo, onde coloquei 0 em vez de 1. A maneira correta é utilizar a variável em vez dos números.
importjava.math.BigDecimal;importjava.util.ArrayList;publicclassExemploBigDecimal{publicstaticvoidmain(String[]args){ArrayList<String>listResumo=newArrayList<String>();// Se colocar o ZERO irá pegar apenas este registro abaixolistResumo.add("22424576.24");// Se colocar o UM irá pegar apenas este registro abaixolistResumo.add("4576.22");// Se colocar o DOIS irá pegar apenas este registro abaixolistResumo.add("444576.21");for(intiR=0;iR<listResumo.size();iR++){// Se colocar a variável irá pegar todos os registros consultados e que estão no listBigDecimalb=newBigDecimal(listResumo.get(0));System.out.println(b);}}}
Entendeu???
Como faço pra o BigDecimal ter somente duas casas decimais?