[Resolvido] Dúvida sobre casts

2 respostas
eberson_oliveira

Bom dia,

Estou com a seguinte dúvida:

byte b1 = 1; byte b2 = 2; byte b3 = b1 + b2; //erro de compilação

Eu entendi que esse erro ocorre porque a soma desses dois bytes retornou um int e não é garantido que este int irá caber em um byte. Está correto?

Para que este código funcionasse teria que fazer o cast explícito… ficando:

byte b1 = 1; byte b2 = 2; byte b3 = (byte) (b1 + b2); //agora compila

Se eu tiver entendido corretamente, a mesma lógica não deveria ser aplicada aqui:

float f1 = 1; float f2 = 2; float f3 = f1 + f2; //compila normal...

Não deveria valer a mesma lógica, pois a soma desses dois floats vai retornar um double, correto? E, como no caso anterior, não é garantido que o número vai caber num float…

Alguém pode explicar, por favor?

Grato,
Éberson

2 Respostas

B

http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.2.4

Se você tem vocação para ler especificações, vai descobrir que float+ float = float.

eberson_oliveira

Ok.

Obrigado pelo link.

Criado 17 de setembro de 2010
Ultima resposta 17 de set. de 2010
Respostas 2
Participantes 2