Ver Mensaje Individual
  #13 (permalink)  
Antiguo 19/02/2012, 21:48
posman
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 4 meses
Puntos: 57
Respuesta: Si hago println(), funciona y si asigno a variable, no.

En lugar de esto

Código Java:
Ver original
  1. double decimal=( Math.pow(z,1/n) );

utiliza esto

Código Java:
Ver original
  1. float decimal = (float)(Math.pow(z,1f/n));

La correccion de tu codigo consiste en hacer que la division (la potencia a la que hay que elevar) regrese un float. Si divides un entero entre otro entero, el resultado tambien es entero. Lo que hace el codigo corregido es transformar el numerador a un float. Asi, la division no va a regresar un entero. Otra posibilidad para corregir tu codigo seria dejar 1/n pero la variable n tendrias que declararla como float.

Tambien, hay que declarar la variable decimal como float. Hice la prueba declarandola como double y el resultado no es exacto. Por ejemplo trate la raiz cubica de 27 y el resultado me regresaba 3.0000000982235946

Última edición por posman; 19/02/2012 a las 21:56