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

[Dúvida] projeto conversor de temperatura

olá colegas e tutores,

eu segui o modelo sugerido pelo professor e tentei alterar a quantidade de casas decimais que aparecem no println:

String mensagem = String.format("A temperatura de %2f Celsius é equivalente a %2f Fahrenheit", temperaturaEmCelsius, temperaturaEmFahrenheit);

E mesmo utilizando %2f ele continua mostrando várias casas depois a virgula.

A temperatura de 40,200000 Celsius é equivalente a 104,360000 Fahrenheit

Como nesse caso proceder? Transformar o double em int?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas
solução!

Oi Patricia, tudo bem? 😊

Sua dúvida é muito comum ao trabalhar com números de ponto flutuante em Java. 🤔

O especificador %2f que você usou indica que o número deve ter uma largura mínima de 2 caracteres, mas não controla a quantidade de casas decimais.

Para controlar o número de casas decimais, você precisa adicionar um ponto e o número de casas desejadas antes do f.

Por exemplo, para exibir duas casas decimais, você usaria %.2f.

Veja como ficaria no seu código:

double temperaturaEmCelsius = 40.2;
double temperaturaEmFahrenheit = (temperaturaEmCelsius * 1.8) + 32;

String mensagem = String.format("A temperatura de %.2f Celsius é equivalente a %.2f Fahrenheit", temperaturaEmCelsius, temperaturaEmFahrenheit);
System.out.println(mensagem);

Com essa alteração, a saída será: A temperatura de 40.20 Celsius é equivalente a 104.36 Fahrenheit.

Transformar o double em int não é o ideal para conversões de temperatura, pois você perderia toda a precisão das casas decimais, arredondando o valor para o número inteiro mais próximo.

Se precisar de formatações mais complexas, como separadores de milhar ou moedas, a classe DecimalFormat é uma ótima opção. 💪

Continue praticando, você está no caminho certo! 😁

🎓 Para saber mais:

gratidão