Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: mzamora60 en 16 de Mayo 2015, 22:54
-
Buena tarde. Tengo duda sobre porque en mi algoritmo para calcular una potencia y despues multiplicarla por otro numero no me da el no. entero como deberia.
package exponenciador;
public class multiplicadorDieces {
public multiplicadorDieces(){}
public int multiplicarPorDieces (double m, int n){
int resultado = 1;
for ( int i= 1; i<=n; i++ ){
resultado = (resultado * 10);
}
System.out.println(m + " * " + resultado + " = " + m * resultado);
return resultado;
}
public static void main (String[] args){
multiplicadorDieces multiplicaPorDiez = new multiplicadorDieces();
multiplicaPorDiez.multiplicarPorDieces(2.55, 2);
}
}
El resultado de multiplicar 2.55 * 100 deberia de ser 255, sin embargo al correr el programa arroja lo siguiente:
2.55 * 100 = 254.99999999999997
BUILD SUCCESSFUL (total time: 7 seconds)
Si alguien pudiera orientarme se los agradeceria bastante.
Saludos cordiales,
:)
-
Hola mzamora60:
Esto que tu observas es por el grado de precisión al trabajar con un atributo del tipo double. El resultado es el esperable, está bien que de ese resultado al hacer la operación que realizas.
De todos modos, fíjate que el grado de error en el resultado es prácticamente cero en una aplicación práctica, del orden de 0.00000000000003 que al ser tan bajo podríamos despreciarlo.
-
Hola, el problema de la precisión decimal en este ejercicio se comenta en otros hilos. Viendo este por ejemplo https://www.aprenderaprogramar.com/foros/index.php?topic=1972.0 creo que se puede aclarar un poco el por qué ocurre eso (que es un tanto inesperado). Saludos.
-
public static void main (String[] args){
multiplicadorDieces multiplicaPorDiez = new multiplicadorDieces();
multiplicaPorDiez.multiplicarPorDieces(2.55, 2);
}
}
esto para que sería? crea un objeto y ya directamente le pasa los parámetros de error? public static void main (String[] args){ esto que significa
-
Hola Macarena:
Este método corresponde a lo que se llamará luego "método principal".
No quiero ahondar en esto en esta instancia del curso. Pienso que deberías continuar y más adelante se tratará en detalle sobre ello en una lección. Los temas están ordenados de manera sistemática y respondiendo a una razón pedagógica.
Igualmente destaco y celebro (una vez más) el interés que demuestras en cada ejercicio por que no quede nada sin entender. :)