Olá. Não consegui compreender porque o 3.14 não pode ser armazenado em uma variável de 32bits (float) sem o casting. Porque é considerado como um valor com 64bits?
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!
Olá. Não consegui compreender porque o 3.14 não pode ser armazenado em uma variável de 32bits (float) sem o casting. Porque é considerado como um valor com 64bits?
Oii Joice, tudo certo?
Quando armazenamos um número com casas decimais em uma variável, o compilador entende esse número como um double, por padrão e reserva 64 bits para armazená-lo, ao invés de 32 bits. Então, por mais que a gente declare
float numero = 3.14;o compilador ainda acha que estamos trabalhando com um double. Por isso, devemos fazer o casting, seja fazendo 3.14f (mais simples) ou
float numero = (float) 3.14;
Espero que tenha ficado mais claro!
Abraços e bons estudos!
Oi, Iasmin. Estou bem, espero que esteja bem tbm. Ficou mais claro sim, agradeço a explicação. :D