A soma de dois inteiros é sempre um int ou long, dependendo dos argumentos. Somar 2 shorts dá um int.
Isso é esquisito, mas indica uma orientação do Java: para fazer contas, use double ou int (talvez long, se for o caso).
Short é algo que na maior parte das arquiteturas modernas (32 ou 64 bits) precisa de um passo adicional de processamento que torna a operação mais lenta, não mais rápida.
F
fabricio.ribeiro
Realmente é estranho. Obrigado entanglement .
diego.sas
Vou tentar explicar de uma maneira, mas não é exatamente os valores corretos ok!
Vamos supor que:
short vai até : 99999
int vai até: 9999999999999
Logo short cabe dentro de um int.
Se fizermos:
shorta=99999;shortb=99999;shortc=a+b;// concorda que a soma não caberá mais em um short.
Por isso que o retorno de uma soma do tipo Short é um int.
Flw
M
magostta
Você tem duas opções:
mudar o tipo de n1, para int por exemplo
ou
fazer uma coersão(cast)
n1=(short)(n2+n3);
alandiniz
eh isso ai… por isso temos o erro: possible loss of precision