Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Passei a variável com %d e não funciona, somente com %f

Boa noite! Tentei fazer com o double e colocando a variável em %d mas não foi, só quando altero pra %f de float, porquê isso acontece se a variável foi declarada em double?

double grauCelsius = 17.2; double grauFahrenheit = (grauCelsius * 1.8) + 32; String mensagem= String.format("A temperatura em grau Celsius é igual a %d e em fahrenheit é %d", grauCelsius,grauFahrenheit); System.out.println(mensagem); int fahrenheitInteiro= (int) (grauFahrenheit); System.out.println("A temperatura inteira de Fahrenheit é " + fahrenheitInteiro);

Obrigado

1 resposta
solução!

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 ✓.