Dúvida: como formatar valores para moeda corrente em Java[RESOLVIDO]

8 respostas
Marcio_Nogueira

Olá, minha dúvida é a seguinte: tenho um campo VALOR em minha tabela, este é do tipo VARCHAR, gostaria que o valor apresentado aparecesse formatado em R$.
Como posso fazer isso?
Desde já agradeço a ajuda. :wink:

8 Respostas

B
DecimalFormat formatoDois = new DecimalFormat("##,###,###,##0.00", new DecimalFormatSymbols (new Locale ("pt", "BR")));
formatoDois.setMinimumFractionDigits(2); 
formatoDois.setParseBigDecimal (true);

sysout(formatoDois.format(valor));

valor deve ser do tipo double

Marcio_Nogueira

Entendi, mas agora tenho que exibir o valor formatado em minha página jsp.
Como faço isso? :wink:

jonestorres

Se estiver utilizando JSTL

R$<fmt:formatNumber minFractionDigits=“2” value="${objeto.valor}"/>

nao eskeca de incluir a tag
<%@ taglib uri=“http://java.sun.com/jsp/jstl/fmt” prefix=“fmt”%>

drigo.angelo

[color=white](acho que reconheço esse código, mas que seja)[/color]

<%= formatoDois.format(valor) %>
drigo.angelo

Uma alternativa (melhor) ao DecimalFormat é o NumberFormat

Use o método getCurrencyInstance()

[]'s

Marcio_Nogueira

Estou utilizando displaytag:

<display:column property="[3]" title="Valor" class="editar numero"/>

Tem como aplicar a formatação no código acima? :wink:

Marcio_Nogueira

Acrescentei o atributo format conforme exibido abaixo, mas mesmo assim os valores não aparecem formatados.
<display:column property="[3]" title="Valor" class="editar numero" format="{0, number, #,##0.00}"/>

O que pode estar faltando fazer?
Desde já agradeço a atenção. :wink:

x111
build_successful:
DecimalFormat formatoDois = new DecimalFormat("##,###,###,##0.00", new DecimalFormatSymbols (new Locale ("pt", "BR")));
formatoDois.setMinimumFractionDigits(2); 
formatoDois.setParseBigDecimal (true);

sysout(formatoDois.format(valor));
valor deve ser do tipo double
Uma outra forma de fazer isso é utilizar NumberFormat como no exemplo:
NumberFormat formatoMoeda = NumberFormat.getCurrencyInstance(); 
	System.out.println(formatoMoeda.format(45.7887));
Você também pode passar apara o banco o formato da moeda caso use moedas de paises diferentes e fazer:
formatoMoeda.setCurrency(Currency.getInstance("USD"));
	System.out.println(formatoMoeda.format(45.7887));
Para pegar a string do código da moeda conforme a ISO 4217 utilizada acima você pode fazer
NumberFormat.getCurrencyInstance().getCurrency().getCurrencyCode();
Criado 13 de janeiro de 2011
Ultima resposta 13 de jan. de 2011
Respostas 8
Participantes 5