1
resposta

[Dúvida] Tabela de casting. Como assim?

não entendi direito sobre a tabela de casting. sobre a converção de int para double
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Otavio. Como vai?

Essa tabela de casting assusta um pouco logo de primeira, mas ela é super útil! Vamos descomplicar isso focando exatamente na sua dúvida sobre a conversão de int para double.

Na tabela, na linha do int indo em direção à coluna do double, você vai encontrar a palavra Impl., que significa Implícito.

Vou te explicar na prática por que isso acontece e a diferença para o caminho inverso:

1. Conversão Implícita (De int para double)

O tipo int serve para números inteiros (como 10, 25, 100) e ocupa menos espaço na memória (32 bits). Já o tipo double serve para números decimais com casas após a vírgula (como 10.5, 99.9) e é muito maior, ocupando o dobro de espaço (64 bits).

Pense no int como um copo de água de 300ml e no double como uma jarra de 1 litro. Se você despejar o conteúdo do copo dentro da jarra, a água vai caber com folga e você não vai perder nenhuma gota, certo?

O Java sabe disso! Por isso, para passar um valor de int para double, você não precisa escrever nenhum código especial. O Java faz isso de forma automática (implícita).

  • Exemplo prático no código:
int numeroInteiro = 10;
double numeroDecimal = numeroInteiro; // O Java aceita direto!

System.out.println(numeroDecimal); // Vai imprimir: 10.0

2. E se fosse o contrário? (De double para int)

Se você olhar na linha do double indo para a coluna do int, a tabela mostra (int). Isso significa que a conversão precisa ser Explícita (chamada de Casting).

Tentando colocar a jarra cheia de 1 litro dentro do copo de 300ml, a água vai transbordar e haverá perda de dados. O Java te avisa disso bloqueando o código e te obrigando a colocar o (int) na frente para provar que você sabe que vai perder as casas decimais (truncamento).

double nota = 9.8;
int notaArredondada = (int) nota; // Casting explícito necessário!

System.out.println(notaArredondada); // Vai cortar as casas decimais e imprimir: 9

Resumindo: de um tipo menor (int) para um tipo maior (double), o Java faz tudo sozinho de forma implícita porque não há risco de estragar ou perder seus dados!

Espero que possa ter lhe ajudado!