Ayuda con ejercicio de monedas
Publicado por Sito00 (2 intervenciones) el 02/10/2014 10:10:56
Hola a todos,
estoy haciendo un programa en java que debe de mostrar una cantidad de billetes y monedas(EN EUROS) a devolver como cambio en función al importe, por ejemplo: si establecemos que el importe es de 150 y el cliente paga con 200, el programa muestra que hay que devolver un billete de 50.
Hasta ahi si que consigo hacerlo porque son numeros enteros, pero el problema viene cuando quiero hacerlo con monedas de centimo, que al tener decimales no se como hacerlo....
Aqui pongo mi codigo con lo que esta mal en NEGRITA para ver si me pueden ayudar.
estoy haciendo un programa en java que debe de mostrar una cantidad de billetes y monedas(EN EUROS) a devolver como cambio en función al importe, por ejemplo: si establecemos que el importe es de 150 y el cliente paga con 200, el programa muestra que hay que devolver un billete de 50.
Hasta ahi si que consigo hacerlo porque son numeros enteros, pero el problema viene cuando quiero hacerlo con monedas de centimo, que al tener decimales no se como hacerlo....
Aqui pongo mi codigo con lo que esta mal en NEGRITA para ver si me pueden ayudar.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
import cs1.Keyboard;
public class opcional2
{
public static void main(String[] args)
{
int B500=0, B200=0, B100=0, B50=0, B20=0, B10=0, B5=0, M2=0, M1=0;
double M50=0, M20=0, M10=0, M05=0, M02=0, M01=0;
double importe, pago, DineroCliente;
System.out.println("Cual es el importe a pagar?");
importe=Keyboard.readInt();
System.out.println("Con cuanto dinero paga el cliente?");
pago=Keyboard.readInt();
DineroCliente= pago-importe;
if(DineroCliente >= 500) {
B500=(int) DineroCliente / 500;
DineroCliente= DineroCliente % 500;
}
if(DineroCliente >= 200) {
B200=(int) DineroCliente / 200;
DineroCliente= DineroCliente % 200;
}
if(DineroCliente >= 100) {
B100=(int) DineroCliente / 100;
DineroCliente= DineroCliente % 100;
}
if(DineroCliente >= 50) {
B50=(int) DineroCliente / 50;
DineroCliente= DineroCliente % 50;
}
if(DineroCliente >= 20) {
B20=(int) DineroCliente / 20;
DineroCliente= DineroCliente % 20;
}
if(DineroCliente >= 10) {
B10=(int) DineroCliente / 10;
DineroCliente= DineroCliente % 10;
}
if(DineroCliente >= 5) {
B5=(int) DineroCliente / 5;
DineroCliente= DineroCliente % 5;
}
if(DineroCliente >= 2) {
M2=(int) DineroCliente / 2;
DineroCliente= DineroCliente % 2;
}
if(DineroCliente >= 1) {
M1=(int) DineroCliente / 1;
DineroCliente= DineroCliente % 1;
}
if(DineroCliente >= 0.50) {
M50=(double) DineroCliente / 0.50;
DineroCliente= DineroCliente % 0.50;
}
if(DineroCliente >= 0.20) {
M20=(double) DineroCliente / 0.20;
DineroCliente= DineroCliente % 0.20;
}
if(DineroCliente >= 0.10) {
M10=(double) DineroCliente / 0.10;
DineroCliente= DineroCliente % 0.10;
}
if(DineroCliente >= 0.05) {
M05=(double) DineroCliente / 0.05;
DineroCliente= DineroCliente % 0.05;
}
if(DineroCliente >= 0.02) {
M02=(double) DineroCliente / 0.02;
DineroCliente= DineroCliente % 0.02;
}
if(DineroCliente >= 0.01) {
M01=(double) DineroCliente / 0.01;
DineroCliente= DineroCliente % 0.01;
}
System.out.println("Billetes de 500€= "+B500);
System.out.println("Billetes de 200€= "+B200);
System.out.println("Billetes de 100€= "+B100);
System.out.println("Billetes de 50€= "+B50);
System.out.println("Billetes de 20€= "+B20);
System.out.println("Billetes de 10€= "+B10);
System.out.println("Billetes de 5€= "+B5);
System.out.println("Monedas de 2€= "+M2);
System.out.println("Monedas de 1€= "+M1);
System.out.println("Monedas de 50cnt= "+M50);
System.out.println("Monedas de 20cnt= "+M20);
System.out.println("Monedas de 10cnt= "+M10);
System.out.println("Monedas de 5cnt= "+M05);
System.out.println("Monedas de 1cnt= "+M01);
}
}
Valora esta pregunta


0