Formator Double

4 respostas
edysnipes

Bom dia. Gostaria de formatar uma String para um valor do tipo Double.

Recebo um valor no padrão - 00000000007130 - e gostaria de formatar para 71,30.

Utilizando o DecimaFormat o padrão acima é formatado mas quando obtenho valores acima de 100,00 uma exceção é lançada.

Codigo.

DecimalFormat df = new DecimalFormat("###,00");  
String valors = df.format(new Double(valor));
valors = valors.replace(',', '.');
Double valorw = Double.parseDouble(valors);
return valorw;

Utilizando o NumberFormat consigo valores como 7.130,00.

Codigo.

public void formatarValor2(String valor) {
		Locale loc = new Locale("pt", "BR");
		NumberFormat nF = NumberFormat.getCurrencyInstance(loc);
		System.out.println(nF.format(new Float(valor).floatValue()));

	}

Grato!

4 Respostas

E

Lembre-se que a formatação com o DecimalFormat é sempre feita como se fosse em inglês, não em português. Portanto, para obter o resultado:

71,30

você precisa usar:

DecimalFormat df = new DecimalFormat("#,##0.00");

O “,” indica o local dos separadores de milhares, e o “.” indica onde deve ficar a vírgula. OK? É meio confuso mas é assim mesmo.

edysnipes

entanglement valew pela ajuda.

Aplicando a máscara não obtive o resultado que queria.

public Double formatarValor(String valor) {
		DecimalFormat df = new DecimalFormat("##,##00.00");    
		String valors = df.format(new Double(valor));
		valors = valors.replace(',', '.');
		Double valorw = Double.parseDouble(valors);
		return valorw;
	}

valor utilizado foi 0000000007130

o retorno foi 7130.0.

valew!

jurunaloco

valor utilizado 0000000007130

Double valor = Double.valueOf(“0000000007130”)
o retorno vai ser um double: 7130.0

divida esse double por 100 e vai ter 71.30

depois aplique o formato decimal.

vc deve estar importando arquivo texto é isso ?

edysnipes

Valew! Resolveu aki. Tinha pensado nisso.

Obrigado!

Criado 30 de setembro de 2009
Ultima resposta 30 de set. de 2009
Respostas 4
Participantes 3