Conversão Monetária ( Valor de Moeda )

4 respostas
L

Amigos,

Estou precisando converter um valor “1.235,36” para “1235.36” para poder inserir no BD, e a inversa para mostrar na tela …

Existe algum método pré-definido para isso, alguém já desenvolveu alguma solução semelhante …

Alguém pode me ajudar ???

4 Respostas

R

se não me engano, vc consegye fazer isso com a DecimalFormat

http://java.sun.com/j2se/1.4.2/docs/api/java/text/DecimalFormat.html

L

Tentei usar este DecimalFormat, mas devo estar fzdo alguma coisa de errado …
Pois não está dando certo … :roll:

G

Teria como disponibilizar o que você está fazendo? Pelo menos a parte que você acha estar fazendo errado…

[ ]'s

F

Acredito que se é para remover "," para inserir no BD e depois restaurar mostrando em tela, deva utilizar um algoritmo para isso Acredito que não tenha classe com tais funções.

O uso da DecimalFormat acho que ajudaria na hora de dispor os dados para o usuário, mas para pegar, retirar e inserir no BD, não.

Fiz um algorotimo e o codifiquei. Está funcionando perfeitamente e acredito que lhe sirva.

//------------------------------------------------------------------------
	// ENTRADA DO VALOR NUMERICO
	//------------------------------------------------------------------------
	String numero = "231.312.113.352.345,67";
	System.out.println(numero);

	//------------------------------------------------------------------------
	// FORMATANDO PARA INSERÇÃO NO BD
	//------------------------------------------------------------------------

	//Procedimento para substituir caracteres
	numero = numero.replace(".","");
	numero = numero.replace(",",".");
		    
	//Resultado pronto para inserir no BD
	System.out.println(numero);

	//------------------------------------------------------------------------
	// FORMATANDO PARA EXIBIR EM TELA
	//------------------------------------------------------------------------
		    
	//Agora vamos ao processo de restauração
	//Substitui o ponto por virgula
	numero = numero.replace(".",",");

	//variavel que diz a cada quantas casas decimais se adiciona o ponto
	int digitos = 3;

	//pega a posição da virgula
	int posicao = numero.lastIndexOf(",");

	//pega toda a string até antes da virgula
	String valor = numero.substring(0,numero.length()-3);

	//verifica no calculo quantos pontos serão necessarios
	int cont = ((valor.length() % digitos) != 0) ? (valor.length() / digitos) : (valor.length() / digitos)-1 ;

	//armazena tudo apos a virgula, para mas tarde adicionar ao valor
	String subValor = numero.substring((int)posicao);

	//Laço para rodar enquanto houver algum ponto a adicionar
	while((cont > 0) && (cont != 0) && !(cont < 0)){
		valor = (valor.substring(0,valor.length()-digitos)) + "." + (valor.substring(valor.length()-digitos));
		cont--;
		digitos = (digitos+3)+1;
	}

	//------------------------------------------------------------------------
	// PRONTO
	//------------------------------------------------------------------------

	//Remonta o valor trabalhado + o restante após a virgula
	System.out.println(valor+subValor);

Comentei bastante para facilitar a interpretação.
Espero que lhe sirva, deu trabalhim :lol: :lol:

Abraço,
Fábio heleno

Criado 26 de abril de 2005
Ultima resposta 26 de abr. de 2005
Respostas 4
Participantes 4