elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Temas
Páginas: [1]
1  Programación / Java / Tengo un problema con eclipse en: 2 Octubre 2011, 01:39 am
bueno tngo un problema con la ejecucion de un programa que he echo y no consigo solucionarlo. Si alguien me puede ayudar se lo agradeceria mucho, llevo como una semana pensando en esto y no hay manera (tambien es cierto que llevo usando eclipse solo unas 2 semanas y que antes no he tocado programacion para nada).
Bueno aqui esta el codigo del programa:



/*Realizar un programa, que proporcionando una cantidad de euros, te diga cual es la menor cantidad de billetes y monedas que se debe usar para cubrir dicha cantidad de euros*/
public class ejercicio_1 {   

      public static void main(String[] args) {   
   
      double x = 888.88/*cantidad de euros proporcionada*/, z, e, c;
      z= x-(int)x;
      e = (int) x;
      c = z * 100;      
      
      int a1, a2, b1, b2, c1, c2, d1, d2, e1, e2, f1, f2, g1, g2, h1, h2, i1;
      a1 = (int) e / 500;
      a2 = (int) e % 500;
      b1 = a2 / 200;
      b2 = a2 % 200;
      c1 = b2 / 100;
      c2 = b2 % 100;
      d1 = c2 / 50;
      d2 = c2 % 50;
      e1 = d2 / 20;
      e2 = d2 % 20;
      f1 = e2 / 10;
      f2 = e2 % 10;
      g1 = f2 / 5;
      g2 = f2 % 5;
      h1 = g2 / 2;
      h2 = g2 % 2;
      i1 = h2 / 1;
     //billetes y monedas de euro

      int j1, j2, k1, k2, l1, l2, m1, m2, n1, n2, ñ;
      j1 = (int) c / 50;
      j2 = (int) c % 50;
      k1 = j2 / 20;
      k2 = j2 % 20;
      l1 = k2 / 10;
      l2 = k2 % 10;
      m1 = l2 / 5;
      m2 = l2 % 5;
      n1 = m2 / 2;
      n2 = m2 % 2;
      ñ = n2 / 1;
      //centimos

      System.out.println("en " + x + " euros hay:");
      System.out.println(a1 + " billetes de 500€");
      System.out.println(b1 + " billetes de 200€");
      System.out.println(c1 + " billetes de 100€");
      System.out.println(d1 + " billetes de 50€");
      System.out.println(e1 + " billetes de 20€");
      System.out.println(f1 + " billetes de 10€");
      System.out.println(g1 + " billetes de 5€");
      System.out.println(h1 + " monedas de 2€");
      System.out.println(i1 + " monedas de 1€");
      System.out.println(j1 + " monedas de 50 cent");
      System.out.println(k1 + " monedas de 20 cent");
      System.out.println(l1 + " monedas de 10 cent");
      System.out.println(m1 + " monedas de 5 cent");
      System.out.println(n1 + " monedas de 2 cent");
      System.out.println("y " +ñ +" monedas de 1 cent");
   }

}



y aqui esta el resultado:



en 888.88 euros hay:
1 billetes de 500€
1 billetes de 200€
1 billetes de 100€
1 billetes de 50€
1 billetes de 20€
1 billetes de 10€
1 billetes de 5€
1 monedas de 2€
1 monedas de 1€
1 monedas de 50 cent
1 monedas de 20 cent
1 monedas de 10 cent
1 monedas de 5 cent
1 monedas de 2 cent
y 0 monedas de 1 cent


como veis me quita un centimo, pero eso solo pasa con algunas cifras, por ejemplo, con 888,70, me lo da bien, y me gustaria solucionar el problema, por favor ayudarme o me volvere loco.

Pd: creo que el problema esta en el redondeo de decimales, que no lo haga bien tras la separacion de la parte entera y la decimal.

Muchas gracias por adelantado
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines