(RESOLVIDO) Trocar "," por "."

Pessoal, estou fazendo um programa, mais me deparei com calculo de valores em “Real”… como não da para fazer calculo com “,” eu teria que trocar as virgulas tudo por “.”.
Em testes eu tentei usar o seguinte comando.

String a = "5,50";
a.replaceAll(",", ".");  
System.out.println(a);

Mais continua saindo “5,50”… ja tentei por // antes do ponto, tentei o “replace” mais não estou conseguindo.

Vlw

[quote=kelvinoenning]Pessoal, estou fazendo um programa, mais me deparei com calculo de valores em “Real”… como não da para fazer calculo com “,” eu teria que trocar as virgulas tudo por “.”.
Em testes eu tentei usar o seguinte comando.

String a = "5,50";
a.replaceAll(",", ".");  
System.out.println(a);

Mais continua saindo “5,50”… ja tentei por // antes do ponto, tentei o “replace” mais não estou conseguindo.

Vlw
[/quote]

Experimente assim:

a = a.replaceAll(",", "."); 

[quote=Sem_Nome][quote=kelvinoenning]Pessoal, estou fazendo um programa, mais me deparei com calculo de valores em “Real”… como não da para fazer calculo com “,” eu teria que trocar as virgulas tudo por “.”.
Em testes eu tentei usar o seguinte comando.

String a = "5,50";
a.replaceAll(",", ".");  
System.out.println(a);

Mais continua saindo “5,50”… ja tentei por // antes do ponto, tentei o “replace” mais não estou conseguindo.

Vlw
[/quote]

Experimente assim:

a = a.replaceAll(",", "."); 

hehe deu certo… eu dei uma vacilada feia agora na lógica ushauhsa. Não adianta nada fazer a conversão e não igualar a ninguém.
Obrigado…

OLá kelvinoenning,

Só avisando que esse método de pegar um número e transformar para string e depois trocar por por vírgula é a PIOR abordagem para tratamento de números (na minha opinião). Sugiro a você olhar a class DecimalFormat para fazer isso. Exemplo:

[code]NumberFormat instance = DecimalFormat.getInstance(new Locale(“pt”, “BR”));
instance.setMaximumFractionDigits(2);

	Double dValue;
	try {
		dValue = (Double) instance.parse("9,7000");
		System.out.println(dValue);
		NumberFormat nf = new DecimalFormat( "#.00" );
		System.out.println(nf.format(dValue));
	} catch (ParseException e) {
		e.printStackTrace();
	}

[/code]

http://www.guj.com.br/java/259997-como-converter-fazer-para-converter-a–digitada-pelo-usuario-para-que-nao-de-erro#1356730

[quote=ruivo]OLá kelvinoenning,

Só avisando que esse método de pegar um número e transformar para string e depois trocar por por vírgula é a PIOR abordagem para tratamento de números (na minha opinião). Sugiro a você olhar a class DecimalFormat para fazer isso. Exemplo:

[code]NumberFormat instance = DecimalFormat.getInstance(new Locale(“pt”, “BR”));
instance.setMaximumFractionDigits(2);

	Double dValue;
	try {
		dValue = (Double) instance.parse("9,7000");
		System.out.println(dValue);
		NumberFormat nf = new DecimalFormat( "#.00" );
		System.out.println(nf.format(dValue));
	} catch (ParseException e) {
		e.printStackTrace();
	}

[/code]

http://www.guj.com.br/java/259997-como-converter-fazer-para-converter-a–digitada-pelo-usuario-para-que-nao-de-erro#1356730[/quote]

Este método trocaria a virgula por “.” e deixaria só com 2 casas decimais neh? só que depois de fazer o calculo eu tenho que mostrar no programa com a “,”. Como ficaria +/- este método fazendo o inverso?

[quote=kelvinoenning]
hehe deu certo… eu dei uma vacilada feia agora na lógica ushauhsa. Não adianta nada fazer a conversão e não igualar a ninguém.
Obrigado…[/quote]
Nem por isso. Esse é o comportamento esperado para os objectos. Excepto para String, que são imutáveis, ou seja, o seu valor nunca é alterado. Assim, os métodos da classe String devolvem uma nova String em vez de alterar a String actual.

[quote=kelvinoenning][quote=ruivo]OLá kelvinoenning,

Só avisando que esse método de pegar um número e transformar para string e depois trocar por por vírgula é a PIOR abordagem para tratamento de números (na minha opinião). Sugiro a você olhar a class DecimalFormat para fazer isso. Exemplo:

[code]NumberFormat instance = DecimalFormat.getInstance(new Locale(“pt”, “BR”));
instance.setMaximumFractionDigits(2);

	Double dValue;
	try {
		dValue = (Double) instance.parse("9,7000");
		System.out.println(dValue);
		NumberFormat nf = new DecimalFormat( "#.00" );
		System.out.println(nf.format(dValue));
	} catch (ParseException e) {
		e.printStackTrace();
	}

[/code]

http://www.guj.com.br/java/259997-como-converter-fazer-para-converter-a–digitada-pelo-usuario-para-que-nao-de-erro#1356730[/quote]

Este método trocaria a virgula por “.” e deixaria só com 2 casas decimais neh? só que depois de fazer o calculo eu tenho que mostrar no programa com a “,”. Como ficaria +/- este método fazendo o inverso?[/quote]

No exemplo ali ele já imprime na tela com a “,”.

[quote=Sem_Nome][quote=kelvinoenning][quote=ruivo]OLá kelvinoenning,

Só avisando que esse método de pegar um número e transformar para string e depois trocar por por vírgula é a PIOR abordagem para tratamento de números (na minha opinião). Sugiro a você olhar a class DecimalFormat para fazer isso. Exemplo:

[code]NumberFormat instance = DecimalFormat.getInstance(new Locale(“pt”, “BR”));
instance.setMaximumFractionDigits(2);

	Double dValue;
	try {
		dValue = (Double) instance.parse("9,7000");
		System.out.println(dValue);
		NumberFormat nf = new DecimalFormat( "#.00" );
		System.out.println(nf.format(dValue));
	} catch (ParseException e) {
		e.printStackTrace();
	}

[/code]

http://www.guj.com.br/java/259997-como-converter-fazer-para-converter-a–digitada-pelo-usuario-para-que-nao-de-erro#1356730[/quote]

Este método trocaria a virgula por “.” e deixaria só com 2 casas decimais neh? só que depois de fazer o calculo eu tenho que mostrar no programa com a “,”. Como ficaria +/- este método fazendo o inverso?[/quote]

No exemplo ali ele já imprime na tela com a “,”.[/quote]

Consegui implementar no meu e ficou perfeito, vlw…
Agora eu estou pensando, tipo eu tenho que salvar isso no Banco de Dados mysql, ai não sei se era melhor eu salvar os valores de dinheiro em String ja com virgula e quando precisar de calculos eu puxo e faço conversão para “.”, ou salvo em double já convertido com “.” no lugar da virgula. Como vocês recomendariam?