I do not understand what I am supposed to to do on Task 6. What am I supposed to do after calculating the actual exchange rate? What am I supposed to do with the budget and denomination variables? The hint says to do something with division, but I don’t know what to divide. I don’t understand it at all. Please help.
def exchange_money(budget, exchange_rate):
"""
:param budget: float - amount of money you are planning to exchange.
:param exchange_rate: float - unit value of the foreign currency.
:return: float - exchanged value of the foreign currency you can receive.
"""
exchange_rate = budget / exchange_rate
return exchange_rate
def get_change(budget, exchanging_value):
"""
:param budget: float - amount of money you own.
:param exchanging_value: float - amount of your money you want to exchange now.
:return: float - amount left of your starting currency after exchanging.
"""
change = budget - exchanging_value
return change
def get_value_of_bills(denomination, number_of_bills):
"""
:param denomination: int - the value of a bill.
:param number_of_bills: int - total number of bills.
:return: int - calculated value of the bills.
"""
value = denomination * number_of_bills
return value
def get_number_of_bills(amount, denomination):
"""
:param amount: float - the total starting value.
:param denomination: int - the value of a single bill.
:return: int - number of bills that can be obtained from the amount.
"""
number_of_bills = amount // denomination
return number_of_bills
def get_leftover_of_bills(amount, denomination):
"""
:param amount: float - the total starting value.
:param denomination: int - the value of a single bill.
:return: float - the amount that is "leftover", given the current denomination.
"""
leftover_of_bills = amount % denomination
return leftover_of_bills
def exchangeable_value(budget, exchange_rate, spread, denomination):
"""
:param budget: float - the amount of your money you are planning to exchange.
:param exchange_rate: float - the unit value of the foreign currency.
:param spread: int - percentage that is taken as an exchange fee.
:param denomination: int - the value of a single bill.
:return: int - maximum value you can get.
"""
exchange_rate = budget / exchange_rate
spread = exchange_rate * spread / 100
actual_rate = exchange_rate + spread
Thank you! Your solution worked! I would like to know how you figured it out.
The (exchange_rate + (exchange_rate * (spread / 100 ))) part seems to be equivalent to the actual_value variable I created in my own code. I tried recreating your problem using my variables but I got an error:
i dont get what is denomination, what it does. after seeing ur code i made it, but i still dont get it.
i dont know why we divide it first, and then why we multiply after.
Maybe it could say something about it on task 6. because the spread part i was burning my mind to solve this percent stuff fee over the amount that is the rate in which the money would be exchanged. damn it burned my mind.
but even solving that part, i had no clue what to do with this denomination stuff. so i just had to google or whatever. not even chatgpt knew what to do. he said denomination is a value in which the final value gets multiplied. He tried. But i was clueless even so.
in the end i did it, but im kinda sad that i coudnt do it on my own.
I was in holiday mood and didn’t login to exercism for a few days. Sorry, that I didn’t answer your message. But it looks like you figured it out with IsaacG anyway. You use denomination in the first place to make a floor division and get a number which fits to the bill size they can exchange. In the next step you have to multiply it to know, how much money you get out. I think that was the solution.
I think Gary89’s solution is a little hard to understand because he uses the variable remainder for the result of the integer division, but that result is not a remainder, its a quotient… so when you then multiply remainder by denomination it seems nonsensical, although mathematically it works.
Please don’t give feedback on solutions when people are not asking for feedback. If they want feedback, there is a “Request Feedback” button on the site. You can provide feedback by becoming a mentor. If they haven’t requested feedback, please don’t.
I’m just pointing out why the solution posted is confusing - as the person who originally asked for help also found it confusing. I’d say my comment is a net positive for all involved.