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

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++

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);

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++