Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Dúvida printf

Amigos,

A diferença no código abaixo é justamente a casa decimal, conforme explicado no exercício. Só gostaria de saber exatamente o que significa o %.2f para poder aplicar em outras ocasiões.

System.out.printf("O saldo é: %.2f", gerenciador.getTotal());

System.out.printf("O saldo é: " + gerenciador.getTotal());
4 respostas
solução!

Olá, Vitor! Tudo certo, cara? =)

Quando você coloca %f dentro de um printf(), você está dizendo que o que entrará ali deve ser um número com ponto flutuante, ou seja, um float. No momento em que você passa um .2, você está truncando o número para aparecerem somente duas casas decimais!

Um exemplo: se tivermos o número 3.1415 e imprimirmos usando %.2f, obteremos como saída o número 3.14. Da mesma forma, se utilizarmos o mesmo número, mas com %.3f, obteremos 3.141, e assim por diante. =)

Espero ter ajudado,

Fábio

Obrigado Fabio. Fiz uns testes aqui, da mesma forma que utilizo %f para transformar o numero em float, posso utilizar %s para transformar em String, e concatenar com R$ por exemplo. Não sei se é uma boa prática, mas a minha pergunta foi justamente pensando nisso. Imaginei utilizar o %,e colocar o valor com o "R$" a frente. Você me recomenda alguma outra forma para deixar o valor em moeda ?

Vitor,

Existem algumas formas de trabalhar com dinheiro no Java...

Se você está interessado em mostrar um valor em reais, por exemplo, você pode concatenar String, sim!

Uma outra forma de se fazer isso é usando um StringBuilder. É uma classe que possui vários métodos, entre eles o append(), que serve para juntar String, mas de uma forma mais elegante.

Mas se estiver interessado em fazer operações com dinheiro, talvez você deva dar uma olhada no JavaMoney ou no JodaMoney. =)

Fábio

Vlwww