//casting
int valorInt = (int) 1.5; //int forcei aceita valor pra double
pq é bom fazer casting sendo que pode perder precisão?
André AS 
//casting
int valorInt = (int) 1.5; //int forcei aceita valor pra double
pq é bom fazer casting sendo que pode perder precisão?
André AS 
O casting é sempre usado em uma determinada situação para forçar um tipo específico, onde por algum motivo, queremos forçar um determinado tipo. Isso é muito usado para chamadas polimórficas.
O caso que você apontou é uma situação em que você está fazendo “downcast” de um double para um float, e como o double tem um range maior vc vai perder precisão mesmo. Este tipo de cast se aplicaria a uma situação muito específica onde você quisesse pegar somente a parte inteira, e mesmo assim podendo perder precisão na mesma.
Resumindo, o fato da feature existir na linguagem não significa que a mesma poderá ser utilizada em todos os casos.
http://www.javabeginner.com/learn-java/java-object-typecasting