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