Cajero automático en visual basic corregir

Bueno amigos tengo un pequeño con una aplicación que me dejaron hacer en donde estudio, y pues ya llevo bastante rato y no logro componer el error de mi aplicación (aviso que soy todavía algo novato en el visual basic)
El problema planteado era el siguiente;
Se tiene un cajero automático el cual permite manipular cierta cantidad de dinero para lo cual dispone de los siguientes billetes: S/. 10.00, S/. 20.00, S/. 50.00, S/. 100.00 y S/. 200.00. Elaborar una aplicación que permita la lectura de la cantidad a retirar e indique el menor número de billetes a utilizar.
y la aplicacion debe de tener este aspecto;

***Termine segun yo el codigo, y funciono mas o menos, pues por ejemplo cuando pido que voy a retirar unos 950 me da como resultado 5 billetes de 200, uno de 100 y 1 de 50.. entonces se pasa, y tambien cuando ingreso que voy a retirar 10, me dice que retirara 10 billetes de 10***
El codigo que estoy usando es;
Private Sub CmdAceptar_Click()
Dim Reti As Integer, Billete200 As Integer, Billete100 As Integer, Billete50 As Integer, _
Billete20 As Integer, Billete10 As Integer
Reti = Val(TxtRetiro)
Billete200 = Reti / 200: Reti = Reti Mod 200
Billete100 = Reti / 100: Reti = Reti Mod 100
Billete50 = Reti / 50: Reti = Reti Mod 50
Billete20 = Reti / 20: Billete10 = Reti Mod 20
TxtBillete200 = Str(Billete200)
TxtBillete100 = Str(Billete100)
TxtBillete50 = Str(Billete50)
TxtBillete20 = Str(Billete20)
TxtBillete10 = Str(Billete10)
End Sub
Private Sub CmdLimpiar_Click()
TxtRetiro = "": TxtBillete10 = "":
TxtBillete20 = "": TxtBillete50 = "":
TxtBillete100 = "": TxtBillete200 = ""
TxtRetiro.SetFocus
End Sub
Private Sub CmdSalir_Click()
End
End Sub
Agradecería, me dijeran en que estoy fallando pues ya llevo rato aquí, y no logro encontrar una respuesta o una solución para esto

1 respuesta

1
Respuesta de
Buenas noches :
Lo que ocurre es que 950/200 es 4.75 pero como está definido como integer se aproxima de manera automática a 5.
Hay que usar la función Int la cual toma la parte entera de un número de la siguiente forma :
Billete200 = Int(Reti/200)
O sea el código sería de la siguiente forma :
Private Sub CmdAceptar_Click()
Dim Reti As Currency, Billete200 As Integer, Billete100 As Integer, Billete50 As Integer, _
Billete20 As Integer, Billete10 As Integer
Reti = Val(Txtretiro)
Billete200 = Int(Reti / 200): Reti = Reti Mod 200
Billete100 = Int(Reti / 100): Reti = Reti Mod 100
Billete50 = Int(Reti / 50): Reti = Reti Mod 50
Billete20 = Int(Reti / 20): Billete10 = Reti Mod 20
Txtbillete200 = Str(Billete200)
Txtbillete100 = Str(Billete100)
Txtbillete50 = Str(Billete50)
Txtbillete20 = Str(Billete20)
Txtbillete10 = Str(Billete10)
End Sub
Private Sub CmdLimpiar_Click()
  Txtretiro = "": Txtbillete10 = "":
  Txtbillete20 = "": Txtbillete50 = "":
  Txtbillete100 = "": Txtbillete200 = ""
  Txtretiro.SetFocus
End Sub
Private Sub CmdSalir_Click()
   End
End Sub
Suerte !
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje