1
resposta

[PROJETO] Conversão de temperatura:

public class temperatura {

public static void main(String[] args) {

    int celsius = 20;
    double fahrenheit  = (celsius * 9 / 5) + 32;

    System.out.println("A temperatura em Fahrenheit é: " + fahrenheit);
}

}
1 resposta

Oii, Letícia! Tudo bem?

Muito bom ver você praticando ativamente!

Seu código compilou e trouxe o resultado esperado para o exemplo do exercício (20 graus), parabéns! Mas eu gostaria de trazer uma observação técnica muito importante sobre matemática no Java, que pode te salvar de "bugs" no futuro.

O segredo da divisão de inteiros

Na sua fórmula, você usou: (celsius * 9 / 5).
Como o número 9 e o número 5 são inteiros, o Java tende a arredondar o resultado da divisão para baixo (ele ignora a vírgula).

  • No caso do 20, deu certo porque a conta é exata.
  • Mas, se você testar com 21 graus, por exemplo, o resultado matemático seria decimal, mas o Java "cortaria" a parte decimal antes de terminar a conta.

A solução:
Para garantir que o Java considere as casas decimais, precisamos que pelo menos um dos números seja do tipo double. Por isso, na "Opinião do Instrutor", é usado 5.0 ao invés de apenas 5.

Ficaria assim:

double fahrenheit = (celsius * 9 / 5.0) + 32;

Dica extra (reforçando):
Assim como vimos na atividade anterior, lembre-se sempre de começar o nome da classe com letra maiúscula (PascalCase), tá bem? Ficaria public class Temperatura.

Continue com esse ritmo excelente de estudos! Se tiver dúvidas sobre essa questão do ponto flutuante (o .0), pode perguntar.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!