Conversão de String para Double e vice-versa

4 respostas
R

Boa Noite pessoal!
Estou com uma dúvida aqui e já tentei várias opções aqui do Fórum e não funcionou no meu código…
É o seguinte… A aplicação que estou desenvolvendo é em servlet, uso o eclipse… Primeiramente gostaria de saber como converter um valor que está em double no banco de dados para apareceer no formulário para o usuário, pois no banco eu tenho 100.0 (exemplo) gostaria que no formulário aparecesse 100,00…
Criei uma classe que monta o formulário, na linha abaixo tenho o valor. Porém está em double…

sb.append( "<label>Valor total <br /><input type=\"text\" name=\"valorparcela\" disabled=\"disabled\" value=\"" +contasReceber.getValorRestante()+ "\" /></label>" );

Na servlet eu tenho…

double valorTotal = Double.parseDouble(request.getParameter("valorparcela"));

quando chega nessa linha da o erro:

java.lang.NullPointerException at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source) at java.lang.Double.parseDouble(Unknown Source)

Preciso primeiramente converter para String o valor que está no banco para aparecer ao usuário e depois voltar ele para Double na servlet pois tenho que fazer uma conta com esse valor.
Alguém sabe como resolver? :frowning:

4 Respostas

M

Double valorTotal = Double.parseDouble(request.getParameter(“valorparcela”));

use o d MAIÚSCULO

L

Uma observação:

double d = Double.parseDouble("1"); // Retorna o tipo nativo double Double d = Double.valueOf("1"); // Retorna o objeto Double
São coisas diferentes as duas operações, assim como são diferentes double e Double.

O seu problema é de NullPointerException no Double.parseDouble(), quer dizer que o parâmetro da requisição não foi encontrado.
Faz um teste assim para ter não erro:

double valorTotal = Double.parseDouble(request.getParameter("valorparcela") != null ? request.getParameter("valorparcela") : "0");
R

Blza, deu certinho lsjunior!
E como posso fazer para no formulário de apresentação ao usuário aparecer o formato de dinheiro? Exemplo: 100,00… pois no meu form ele buscou o valor do banco que está 100.0…

L

Tem a classe NumberFormat.

Pode fazer assim:

NumberFormat numberFormat = NumberFormat.getCurrencyInstance();

Ou Assim:

NumberFormat numberFormat = new DecimalFormat("###,##0.00");

E depois:

String s = numberFormat.format(12345.67);
Criado 31 de janeiro de 2012
Ultima resposta 2 de fev. de 2012
Respostas 4
Participantes 3