Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/11/2014, 16:21
Avatar de 12trunks12
12trunks12
 
Fecha de Ingreso: noviembre-2014
Mensajes: 41
Antigüedad: 7 años, 5 meses
Puntos: 1
Problema con restos(%)

Hola, bueno soy nuevo en la programación, llevo como 2 meses programando y bueno voy al tema:

Estoy intentando hacer un programa que al ingresar una cantidad de dinero te diga cuantos billetes de 500, 200...(en euros) y monedas (en céntimos) tienes. El problema está al llegar a los céntimos ya que son decimales y he intentado todo lo posible pero no se que problema de cálculo tengo en mi código

Código:
#!/usr/bin/env python3

from decimal import Decimal
dinero = Decimal(input("Dime la cantidad de dinero: "))

def billetes(numero):

    billetes_500 = int(dinero/500)
    print("Tienes",billetes_500,"billetes de 500 euros")
    resto_billetes_500 = dinero % 500
    print(resto_billetes_500)

    billetes_200 = int(resto_billetes_500/200)
    print("Tienes",billetes_200,"billetes de 200 euros")
    resto_billetes_200 = resto_billetes_500 % 200
    print(resto_billetes_200)

    billetes_100 = int(resto_billetes_200/100)
    print("Tienes",billetes_100,"billetes de 100 euros")
    resto_billetes_100 = resto_billetes_200 % 100
    print(resto_billetes_100)

    billetes_50 = int(resto_billetes_100/50)
    print("Tienes",billetes_50,"billetes de 50 euros")
    resto_billetes_50 = resto_billetes_100 % 50
    print(resto_billetes_50)

    billetes_20 = int(resto_billetes_50/20)
    print("Tienes",billetes_20,"billetes de 20 euros")
    resto_billetes_20 = resto_billetes_50 % 20
    print(resto_billetes_20)

    billetes_10 = int(resto_billetes_20/10)
    print("Tienes",billetes_10,"billetes de 10 euros")
    resto_billetes_10 = resto_billetes_20 % 10
    print(resto_billetes_10)

    billetes_5 = int(resto_billetes_10/5)
    print("Tienes",billetes_5,"billetes de 5 euros")
    resto_billetes_5 = resto_billetes_10 % 5
    print(resto_billetes_5)

    monedas_2 = int(resto_billetes_5/2)
    print("Tienes",monedas_2,"monedas de 2 euros")
    resto_monedas_2 = resto_billetes_5 % 2
    print(resto_monedas_2)

    monedas_1 = int(resto_monedas_2/1)
    print("Tienes",monedas_1,"monedas de 1 euro")
    resto_monedas_1 = resto_monedas_2 % 1
    print(resto_monedas_1)

    monedas_050 = int(resto_monedas_1/Decimal(0.50))
    print("Tienes",monedas_050,"monedas de 50 céntimos")
    resto_monedas_050 = Decimal(resto_monedas_1) % Decimal(0.50)
    print(resto_monedas_050)

    monedas_020 = int(Decimal(resto_monedas_050)/Decimal(0.20))
    print("Tienes",monedas_020,"monedas de 20 céntimos")
    resto_monedas_020 = Decimal(resto_monedas_050) % Decimal(2)
    print(Decimal(resto_monedas_020))

    monedas_010 = int(resto_monedas_020/Decimal(0.10))
    print("Tienes",monedas_010,"monedas de 10 céntimos")
    resto_monedas_010 = resto_monedas_020 % Decimal(1)
    print(resto_monedas_010)


billetes(dinero)


Como podeis ver el resto a partir de los céntimos va mal.

Muchas gracias y un saludo, no hay urgencia en la respuesta.