Acceder

Ver la Versión Completa : Ayuda con expresion matematica en Java


rinxe
17/04/12, 12:25:53
Buenas gente, resulta que estoy haciendo un curso java para principiantes y voy dominando ya los primeros pasos pero tengo una expresion que no consigo entenderla. No sabia donde pedir ayuda y digo haber si en HTCMania me pueden hechar una mano.

La expresion es matematica y para hayar la hipotenusa de un triangulo rectangulo.

Si la hago asi:
hipotenusa=Math.sqrt(Math.pow(base, 2)+Math.pow(altura, 2));Java me da un mal resultado.


En cambio si lo separo y la hago asi:
hipo=Math.pow(base, 2)+Math.pow(altura, 2);

hipotenusa=Math.sqrt(hipo);Java me da el resultado bueno

No lo entiendo, si es lo mismo porque en la primera me arroja un mal resultado.

kriogeN
17/04/12, 15:09:18
No debería fallar, ¿seguro que no cambias ninguna otra cosa?

Puede que sea un bug de la versión del JDK que estás usando, prueba esto:

hipotenusa=Math.sqrt((Math.pow(base, 2)+Math.pow(altura, 2)));

rinxe
17/04/12, 17:07:43
Ostiaaaaa, que cosa mas rara !!!

Le metido la expresion que me has dejado tu:
hipotenusa=Math.sqrt((Math.pow(base, 2)+Math.pow(altura, 2))); Y me hace bien el resultado


Y he cogido por probar, a quitarle los parentesis que le hemos puesto a la expresion
hipotenusa=Math.sqrt(Math.pow(base, 2)+Math.pow(altura, 2));Y hoy me hace bien el resultado


Que cosas mas raras, debia tener el eclipse un poco rallado en ese momento, es la unica opcion que se me ocurre, jejejjj. Ya me parecia a mi que estando bien la ecuacion diera un mal resultado.

PD: Gracias por responder !!!!

FordPrefect
17/04/12, 23:30:39
Hola,

hipotenusa=Math.sqrt(Math.pow(base, 2)+Math.pow(altura, 2));

No es que se vaya a notar, pero es más eficiente así:

hipotenusa=Math.sqrt(base * base + altura * altura);

rinxe
18/04/12, 10:01:11
Siii, al principio usaba esa formula porque desconocia como elevar un valor a otro valor y como descubri bien la funcion Math y todas sus posibilidades, de momento prefiero dejarlo, me parece mas bonito, jejejj

Gracias FordPrefect por comentar !!