Olá Rodolfo, boa tarde! Tudo certo?
A sua dúvida é bastante comum quando começamos a trabalhar com formatação de strings em Java. O que acontece é que o especificador %d
é utilizado para formatar valores inteiros (int), enquanto %f
é usado para formatar números de ponto flutuante, como float
e double
.
Como você declarou suas variáveis grauCelsius
e grauFahrenheit
como double
, que são tipos de dados de ponto flutuante, o correto é usar %f
para formatá-las. O %f
é apropriado para exibir números com casas decimais, que é o caso do tipo double
.
Se você quiser formatar o número para não mostrar casas decimais, você pode usar %.0f
no lugar de %f
, que irá arredondar o valor para o inteiro mais próximo. Aqui está como seu código pode ficar:
double grauCelsius = 17.2;
double grauFahrenheit = (grauCelsius * 1.8) + 32;
String mensagem = String.format("A temperatura em grau Celsius é igual a %.0f e em fahrenheit é %.0f", grauCelsius, grauFahrenheit);
System.out.println(mensagem);
int fahrenheitInteiro = (int) (grauFahrenheit);
System.out.println("A temperatura inteira de Fahrenheit é " + fahrenheitInteiro);
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.