public class Conversao {
public static void main(String[] args) {
double valorDouble = 21.7;
valorDouble = (int)valorDouble;
System.out.println("O valor inteiro do produto é: "+ valorDouble);
}
}
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 Conversao {
public static void main(String[] args) {
double valorDouble = 21.7;
valorDouble = (int)valorDouble;
System.out.println("O valor inteiro do produto é: "+ valorDouble);
}
}
Oi, Rick, como vai?
A sua intenção ao aplicar o operador de conversão explícita foi muito boa, mas ocorreu um detalhe conceitual importante no armazenamento do resultado. No seu código, você tentou salvar o valor convertido de volta na mesma variável que foi declarada originalmente como double. Como as variáveis em Java possuem tipagem estática e rígida, a atribuição não transforma o tipo da variável em si, o que faz com que o valor final seja impresso novamente com casas decimais, exibindo o resultado como 21.0 no console em vez do número inteiro isolado.
Para conseguir o comportamento esperado pelo sistema de estoque, é necessário direcionar o resultado da conversão para uma nova variável do tipo int. Quando você realiza a operação de casting, o compilador descarta a parte decimal, mas o valor resultante precisa de um espaço adequado para ser armazenado de acordo com as regras da linguagem.
Por exemplo, podemos criar uma nova variável para receber esse dado transformado:
int valorInteiro = (int) valorDouble;
System.out.println("O valor inteiro do produto é: " + valorInteiro);
Dessa forma, o compilador entende que o dado final pertence ao conjunto dos inteiros e o exibe sem o ponto flutuante.
Sabendo que essa técnica de casting explícito apenas ignora a parte decimal sem realizar um arredondamento matemático, como você acha que o comportamento do sistema de estoque seria afetado caso o valor original representasse uma média ou aproximação que precisasse ser arredondada para o inteiro mais próximo?
Parabéns pela dedicação ao realizar o exercício e muito obrigado por compartilhar o seu código aqui no fórum. Continue postando suas resoluções para fortalecer o aprendizado prático e lembre-se de que o fórum está totalmente à disposição para ajudar em todas as etapas dos seus estudos.