[ Foro de Java ]
/* version 1.00 2018/9/5 */
import java.io.*;
class CrearFuncion {
/*9.3.1: Crea una función que calcule el cubo de un número
real (float) que se indique como parámetro. El resultado deberá ser otro
número real. Pruébala para calcular el cubo de 3.2 y el de 5.*/
//referencia
/*System.out.print( "Cinco elevado al cubo: ");
//System.out.println( Math.pow(5.0,3.0) );
//me muestra el mismo mensaje de error que el q tengo en este codigo
//funcion
public static void cubo(float parametro){
float operacion = parametro*parametro*parametro;
System.out.println( operacion );
}
//main estructura de nuestro programa
public static void main (String[] args) {
//mando llamar la funcion
cubo(3.2);
}
}
con el 5 si trabaja pero con 3.2 NO manda este error
error: incompatible types: possible lossy conversion from double to float
ya intente varias cosas pero ya me atore
/*9.3.1: Crea una función que calcule el cubo de un número
real (float)=(lo cambie por double como me recomendo el compilador) que se indique como parámetro. El resultado deberá ser otro
número real. Pruébala para calcular el cubo de 3.2 y el de 5.*/
import java.io.*;
class CrearFuncion {
//puedo usar pow u otra forma pero para hacer especificamente lo q me piden esto funciona
public static double cubo(double parametro){
double operacion = parametro*parametro*parametro;
double decimales = Math.round(operacion * 100) / 100.0;
System.out.println( decimales );
return decimales;
}
public static void main (String[] args) {
cubo(3.2);
}
}
Por una parte, para la pérdida de precisión, puedes dejar claro que es aceptable para ti con cosas como
x = (float) Math. ...
Por otra parte, si te piden que devuelvas un valor, normalmente no tendrás que escribirlo en pantalla (salvo que sea ayuda de depuración tuya).
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)