[edit]
I've tested it and the problem seems to be converting the floats to ints. The float 1.0 is being converted to 0 as an int. Same with 5.0 being converted to 4 as an int.
[/edit]
#!/usr/bin/python
#Change Return Program
#The user enters a cost and then the amount of money given. The program will figure out the change
#and the number of quarters, dimes, nickels, pennies needed for the change.
def get_cost(): return float(raw_input('Enter Cost:$'))
def get_money(): return float(raw_input('Enter Money Given:$'))
def get_change_left(cost,money_given): return (money_given - cost)
def get_quarters(change_left):
quarters=int((change_left*100 / 25))
change_left -= (quarters * .25)
return (quarters, change_left)
def get_dimes(change_left):
dimes= int((change_left*100 / 10))
change_left -= (dimes*.10)
return (dimes, change_left)
def get_nickels(change_left):
nickels = int((change_left*100 / 5))
change_left -= (nickels*.05)
return (nickels,change_left)
def get_pennies(change_left): return int((change_left*100 / 1))
cost = get_cost()
money_given = get_money()
change_left = get_change_left(cost, money_given)
print ("The change is:${:,.2f}").format(change_left)
quarters,change_left = get_quarters(change_left)
dimes, change_left = get_dimes(change_left)
nickels, change_left = get_nickels(change_left)
pennies = get_pennies(change_left)
print ("Change to give\n{:=<14}\n{:<12}{}\n{:<12}{}\n{:<12}{}\n{:<12}{}").format('','Quarters:',quarters,'Dimes:' ,dimes,'Nickels:', nickels,'Pennies:', pennies)
example output:
Enter Cost:$4.95
Enter Money Given:$5
The change is:$0.05
Change to give
==============
Quarters: 0
Dimes: 0
Nickels: 0
Pennies: 4
This post has been edited by alexr1090: 14 May 2012 - 10:16 PM

New Topic/Question
Reply


MultiQuote




|