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);
}
}
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!
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);
}
}
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?