Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: fedegaray en 17 de Febrero 2015, 15:15

Título: Java falla en precisión decimal Objetos abstractos Ejercicio resuelto CU00644B#
Publicado por: fedegaray en 17 de Febrero 2015, 15:15
Solución propuesta para el ejercicio CU00644B del tutorial pdf de programación Java desde cero con ejercicios resueltos.

Primero tengo que admitir que me costó bastante esta lección, pero le puse mucha concentración y creo haberla entendido. El problema que me surge es que cuando realizo el ejercicio, el resultado es incorrecto por algunos decimales (p. ej: en vez de 255 me da 254.999999999997) , y la verdad es que ya no se donde encontrarle la falla. Espero que me puedan esclarecer esto para poder continuar sobre pasos firmes. Muchas gracias!!!


Código: [Seleccionar]
public class MultiplicarPorDieces {
     public MultiplicarPorDieces () {
         //Este constructor no declara nada
    }
    //Método
       
    public double multiplicarPorDieces (double primerNumero, int segundoNumero) {
       
        double resultado = 1;
       
        for (int contador=1; contador<=segundoNumero; ++contador) {
            resultado = resultado * 10;           
        }
        return resultado * primerNumero;
    }
} //Cierre de la clase
Título: Re:Problemas con ejercicio CU00644B (Objetos abstractos)
Publicado por: César Krall en 17 de Febrero 2015, 15:21
Hola creo que leyendo https://www.aprenderaprogramar.com/foros/index.php?topic=991 se te aclarará la duda. Saludos!
Título: Re:Problemas con ejercicio CU00644B (Objetos abstractos)
Publicado por: fedegaray en 17 de Febrero 2015, 15:29
Muchas gracias. Veo que no fui el único. ¿eso quiere decir que mi sintaxis era correcta pero el problema es del sistema?
Título: Re:Problemas con ejercicio CU00644B (Objetos abstractos)
Publicado por: César Krall en 17 de Febrero 2015, 21:33
Tu planteamiento era correcto, pero a veces eso no es suficiente, de ahí que además de hacer planteamientos correctos sea necesario comprobar los resultados porque puede haber factores que no controlemos. Exactamente lo que has hecho. A seguir así, saludos.