Como usar as formatações de saída corretamente?

2 respostas
marcocunhasilva

Boa noite!

Estou fazendo umas tarefas da cadeira de algoritmos e, na faculdade, estamos utilizando java.

Então, peguei uma classe que formata o valor tipo monetário, presente na seguinte página:

http://javafree.uol.com.br/artigo/849032/Mascara-monetaria.html

O que estou tentando fazer é o seguinte:

System.out.printf("A comissão do garçon é de: %.2f", m.MascaraDinheiro(nValor, m.DINHEIRO_REAL));

Só que apresenta o seguinte erro:

A comissão do garçon é de: Exception in thread main java.util.IllegalFormatConversionException: f != java.lang.String

at java.util.Formatter$FormatSpecifier.failConversion(Unknown Source)

at java.util.Formatter$FormatSpecifier.printFloat(Unknown Source)

at java.util.Formatter$FormatSpecifier.print(Unknown Source)

at java.util.Formatter.format(Unknown Source)

at java.io.PrintStream.format(Unknown Source)

at java.io.PrintStream.printf(Unknown Source)

at comissao.main(comissao.java:30)

OBS: Gostaria de fazer com que mostrasse em uma única linha. Utilizando a função System.out.println funciona, mas não com System.out.printf.

Se alguém souber e puder me ajudar, ficarei grato.

T++

2 Respostas

romarcio

Se você está usando a classe que postou o link como exemplo, você não deve usar o printf(), porque a formatação já está setada no código. Assim, use print() ou println()

System.out.println("A comissão do garçon é de: "+ m.mascaraDinheiro(nValor, m.DINHEIRO_REAL));

Mas se não vai usar a classe dai deveria usar apenas o valor no printf(): System.out.printf("A comissão do garçon é de: %.2f", nValor);

marcocunhasilva

Obrigado romarcio, fiz como vc postou e funcionou.

Ficou assim:

// Mostra a comissão do garçon System.out.println("A comissão do garçon é de: " + m.MascaraDinheiro(nComissao, m.DINHEIRO_REAL));

T++

Criado 18 de agosto de 2012
Ultima resposta 18 de ago. de 2012
Respostas 2
Participantes 2