Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

ex 02

public class ConversaoTipos {
    public static void main(String[] args) {
        double produto = 29.5;

        int estoque = (int) produto;
        System.out.printf("Produto inteiro no estoque é %d" ,estoque);

    }
}
1 resposta

Oi, João! Tudo bem?

Que legal ver seu exercício trabalhando a conversão de tipos em Java, transformando um valor decimal em um número inteiro para representar o estoque. Seu código tá correto e resolve bem a proposta: o (int) na frente da variável faz o casting explícito, necessário sempre que a conversão vai de um tipo maior para um menor, já que existe risco de perda de informação.

Vale observar o que acontece com o valor: o resultado impresso é 29, e não 30. Isso porque o casting de double para int faz truncamento, ou seja, descarta a parte decimal em vez de arredondar. Uma dica para quando você quiser o arredondamento matemático: use Math.round(produto), que devolve um long para entradas double, então o código fica int estoque = (int) Math.round(produto); e o resultado passa a ser 30.

Aproveitando o tema, uma provocação: em qual situação do dia a dia de um sistema o truncamento seria a escolha mais adequada, e em qual delas o arredondamento faria mais sentido?

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