Ok, galera!
Tuda a discurssão esclareceu bastante!
Resumindo então…
Para saber o retorno de soma (ou qualquer operação) entre tipos primitivos diferentes basta utilizar a tabelinha:
A preferencia será sempre do primeiro para o ultimo…
Quando se trata de operações de mesmos tipos o unico “problema” é quanto ao retorno dos tipos “char, short e byte”, pois esses retorna um “int”, certo?
Um long?
Como isso pode acontecer???
Bem… me corrigam se eu estiver errado…
O problema ai, ocorre quando uso valores literais por exemplo:
float a = 1.5; //Ocorre um erro de compilação...
float b = 1.5f; // Ok!!!
float c = 1.5 + 1.3; //Erro!
float d = 1.5f + 1.3; //Erro!
float e = 1.5f + 1.3f; //Ok!!!
float f = 10.5f;
float g = 11.7f;
float h = f + g; // Tudo funciona perfect!
Isso pq, por default valores literais com casas decimais são double.
To certo ou to errado?
Valeu!