Decimal para Double

10 respostas
ambuzr

Ola galera

Seguinte, to desenvolvendo um aplicativo que trabalha com Dinheiro, recebo do banco como double blz e ja faço os calculo como abaixo

somaPendentes = somaPendentes + lacChequesCon.resultset.getDouble("valor");

Porem criei um FormatTextFild, e recebo como Decimal(String)

meuFTF.gettext();

porem quando vou enviar pro banco nao da pq tem que estar como Double e no caso vai estar como “20,00” onde deveria ser “20.00”
como converto? pq Double para decimal format eu ja sei

DecimalFormat  formatador  = new DecimalFormat();
            formatador.format(somaPendentes));

alguem sabe?

10 Respostas

gabrielmassote

Tudo bem ambuzr?

tenta ai:

//retorna um objeto Double, mas que pode ser usado tambem pois no java 5 existe conversao automatica ja para o primitivo
Double.valueOf(suaString); // ou getText do formatedTextField

ou

//retorna ja um primitivo
Double.parseDouble(suaString);

abracos

ambuzr

Ja havia tentando porem todos geram o mesmo erro :(

System.out.println(Double.parseDouble("19,20"));
		System.out.println(Double.valueOf("19,20"));


Exception in thread "main" java.lang.NumberFormatException: For input string: "19,20"
	at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
	at java.lang.Double.valueOf(Unknown Source)
	at estudos2.testes.main(testes.java:10)
gabrielmassote

acho q é 19.20 se nao me engano e nao 19,20…pq ta dando erro no formato do numero…

tenta ae

ambuzr

O pro e que tenho que converter o “19,20” pra Double devendo ficar como 19.20 pra trabalhar com soma etcs, pois meu FormatTextFild quando o usuário digita ele transforma em moeda se ele digitar 19 vira 19,00 sabe como moeda quero converter pra mandar pro banco e pra trabalhar com soma

gabrielmassote

entao voce vai ter que criar um metodo proprio ou descobrir outra maneira, pois as conversoes que eu conheco e que estao no livro de certificacao que estou estudando utilizam o “.” no lugar da “,”…

realmente nao sei como ajudar…

ambuzr

Pois é tenho que criar um metodo que transforme " , " em " . " pra trabalhar com moeda e apos os calculos retorna o resultado como " , "(onde no caso eu ja sei fazer isso) , como te disse nos calculos que fiz que recebo do banco fica filé, ele calcula qual foi o faturamento da empresa, os impostos, etcs, o unico problema e que fica foda(esteticamente) do usuario digitar 19.00 concorda? mas vlw pela força te agradeço mesmo

fica assim

recebe do usuario 19,20, converte e envia pro banco 19.20(isso eu nao sei)

recebe do banco 19.20

faz os calculos 19.20 + 19.20 = 38.4

exibe pro usuario R$38,40 (isso eu ja sei)
gabrielmassote

aham isso mesmo…

as vezes ja tenha alguma API pronta que faz isso…mas nao sei…

boa sorte na implementacao…
e qualquer coisa estamos ai pra tentar ajudar…

abracaoo

maquiavelbona

ambuzr:
Pois é tenho que criar um metodo que transforme " , " em " . " pra trabalhar com moeda e apos os calculos retorna o resultado como " , "(onde no caso eu ja sei fazer isso) , como te disse nos calculos que fiz que recebo do banco fica filé, ele calcula qual foi o faturamento da empresa, os impostos, etcs, o unico problema e que fica foda(esteticamente) do usuario digitar 19.00 concorda? mas vlw pela força te agradeço mesmo

fica assim

recebe do usuario 19,20, converte e envia pro banco 19.20(isso eu nao sei)

recebe do banco 19.20

faz os calculos 19.20 + 19.20 = 38.4

exibe pro usuario R$38,40 (isso eu ja sei)

</blockquote>

Procure por Java localization(l10n)  e por Java Internationalization (i18n). Isso já tem API feita e bem testada. Exemplo é o que não falta no fórum.

Até!

ambuzr

consegui galera

apesar de ser uma gambiarra mas funcionou

String valor = "25.000,14";
                valor = valor.replace(".", "");// que tiver . substitui por nada
                 valor = valor.replace(",", "."); que tiver , substitui por  .
System.out.println(valor);

25000.14

valeu galera pela força

paulofafism

Pq vc não trabalha com BigDecimal e a melhor solução para trabalhar com valores monetarios

Criado 10 de julho de 2008
Ultima resposta 11 de jul. de 2008
Respostas 10
Participantes 4