Eaí galera beleza? To com uma duvidazinha besta, eu to querendo transformar uma String em um double e vice versa. Eu fiz a parte de jogar de número para String numa boa:
Aqui ele mostra certinho:
Format => -15.548.798.456,74
O problema é quenão to conseguindo fazer a volta. =/ Alguém pode dar uma ajuda aí?
PS:
Eu já tentei usar o df.parse( “123.456,78” ); mas ele não faz o parse do número todo =/
o q eu entendi foi isso: vc quer passar uma string e exibir no formato q vc passou.
acho q ficaria assim:
df.format(Double.parseDouble("123.456,78"))
tenta ae…
t+
von.juliano
Vc quer o valor em número não é isso? Ficaria assim:
double valor = Double.parseDouble("123456.78");
Repare que eu coloquei o ponto como separador decimal.
L
Lao
É quase isso que você fizeram, mas o que acontece é isso:
Eu tenho um valor em String de um montante em dinheiro,
por exemplo: R$ 123.456.789,10
Ou seja, tenho a String “123.456.789,10” e quero transformar isso para um double.
E a outra parte é pegar esse double e fazer o inverso(que eu já consegui como mostrado) pego o double e uso o Decimalformat e tudo funciona. Só essa parte de transformar de String para double que não funciona.Para fazer isso eu teria que de algum jeito transformar: “123.456.789,10” EM “12345678.10”. Coisa que também não consigo =)
matheuscechito , essa forma de fazer o parse sua não funciona. Só como o von.juliano mostrou, mas não é isso que eu quero =\
Ninguém mais tem idéias?
Romeo
Ja tentei fazer o q vc quer e não dá por métodos ja feitos, tem q ser no braço mesmo…
SubString e charAt…
T
thingol
a) O pessoal lhe passou a string errada - é #,##0.00
b) Você precisa dizer que a linguagem padrão é português (pt-BR)
c) parse retorna um java.lang.Number. Para converter para double você precisa pegar doubleValue (a menos que você use Java 5.0, onde isso é automático pelo "autoboxing").
O código abaixo foi testado com Java 1.4, mas funciona até com o Java da Microsoft (1.1).
importjava.text.*;importjava.util.*;classTesteDF{publicstaticvoidmain(String[]args){// Isto é o corretoLocale.setDefault(newLocale("pt","BR"));DecimalFormatdf=newDecimalFormat("#,##0.00");// Imprime: Format => -15.548.798.456,74System.out.println("Format => "+df.format(-[telefoneremovido].74));doubled=0;try{d=df.parse("123.456,78").doubleValue();}catch(ParseExceptionex){ex.printStackTrace();}// Imprime: 123456.78System.out.println(d);// Imprime: 123.456,78System.out.println(df.format(d));}}