Eu não entendi, pois na multiplicação a ordem dos fatores não altera o resultado…
Exite alguma conversão implicita para INT mesmo em expressões totalmente Float ?
Obrigado!
fImc = 1.0 * fPeso / Math.pow(fAltura, 2); // pode usar fAltura * fAltura, mas potência é mais legal u.u
?
se não houver algo dizendo que se tratam de números decimais (float/double) em uma divisão, ele faz o famoso DIV (divisão inteira). Multiplicando por 1 não alteraria o resultado, mas como está 1.0, o Java sabe que tudo dali pra frente é decimal
O problema é a precedência dos operadores, no primeiro caso seu codigo fez: (peso / altura) * altura,
mas você queria peso / (altura*altura), então você é obrigado a colocar o parenteses para fazer o que deseja.
Obrigado pela respostas é isso mesmo! A ordem de precedencia!!! Eu que pensei que a ordem dos fatores não alterava o produto! Dizem que toda divisão pode se transformar em uma multiplicação e vice-versa…
Veleu pessoal!