Cast a value from one data type to another including automatic and manual promotion


Casting em Java é o processo de converter um valor de um tipo de dado para outro. Existem dois tipos principais de castings: casting automático (ou coerção implícita) e casting manual (ou coerção explícita).

Conversão Implícita:

Conversão implícita ou “Casting automático” ocorre quando o Java faz automaticamente a conversão de um tipo de dado para outro, quando não há perda de dados envolvida e o destino é “maior” ou “mais preciso” que a origem. Casting de int para double.

No exemplo acima, o valor da variável numeroInteiro é automaticamente convertido para um double ao atribuir à variável numeroDecimal.

Conversão Explícita:

Conversão explícita ou “Casting manual” ocorre quando é necessário explicitamente indicar ao compilador que você deseja converter um valor de um tipo para outro. Isso é necessário quando há risco de perda de dados ou quando o destino é “menor” ou “menos preciso” que a origem.

No exemplo acima, o valor da variável numeroDecimal é manualmente convertido para um int. Note que a parte decimal é truncada durante esse processo.

Lembre-se de que, ao fazer um casting manual, você deve ter cuidado para evitar a perda de dados. Se a parte decimal não puder ser perdida ou se houver risco de overflow ou underflow, o compilador emitirá um aviso.