Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Pq o casting de float para long não é implícito?

Olá!! Sendo o float menor do que o long, essa conversão não deveria ser implícita? Obrigada.

1 resposta
solução!

OIá, Natália

Acredito que isso se deve ao fato do float ser um tipo "ponto flutuante", possuindo valores decimas, desta forma, quando você realiza um processo de typecasting, você assume que não irá precisar de nenhum valor que esteja após a virgula, como no exemplo a seguir:

public class AluraAjudaErica1 {


    public static void main(String[] args) {

        Long primeiro = 1L;
        Float segundo = 2.656165189f;

        primeiro = segundo.longValue();

        System.out.println("Resultado: " + primeiro);
    }

}

o resultado que irá aparecer no console no caso será

Resultado: 2

Agora o double (dobro da capacidade do float), mesmo o float sendo menor que o double, ele ainda sim precisa realizar typecasting, o motivo é deve ser a precisam que é diferente de um para outro. veja um exemplo abaixo:

public class ajuda1 {


    public static void main(String[] args) {

        Double primeiro = (double) 12;
        Float segundo = 2.656165189f;

        primeiro = segundo.doubleValue();

        System.out.println("Resultado: " + primeiro);
    }

}

para saber mais detalhes sobre isso deixei um link nas referências para complementar seus estudos. Espero ter ajudado, não esqueça de marcar como tópico finalizado.

Att,


Referências complementares: https://javarevisited.blogspot.com/2015/09/how-to-convert-float-to-long-in-java.html#axzz7ZLIvcJim

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software