我必须在Python中创建一个脚本,它在转换货币的同时还增加了交换费。以下是正确的说明:
创建exchangeable_value()函数,获取预算、exchange_rate、spread和分母。
参数差价是作为交换费计算的百分比,以整数形式写成。它需要被转换成十进制,除以100。如果1.00欧元== 1.20美元,价差为10,则实际汇率为: 1.00欧元== 1.32美元,因为1.20的10%是0.12,而这一额外费用将加到交易所。
此函数应在计算汇率加上利差后返回新货币的最大值。请记住,货币面额是一个整数,不能再分割.
注意:返回的值应该是int类型。
话虽如此,我想出的代码是:
def exchangeable_value(budget, exchange_rate, spread, denomination):
new_exchange_rate = exchange_rate * ((spread/100)+1)
x = budget/new_exchange_rate
return x//denomination为了彻底起见,下面是我得到的测试输入和输出:
(100000, 10.61, 10, 1): 8568 (correct)
(1500, 0.84, 25, 40): 35.0, should be 1400
(470000, 1050, 30, 10000000000): 0 (correct)
(470000, 0.00000009, 30, 700): 5,738,705,738.0, should be 4,017,094,016,600
(425.33, 0.0009, 30, 700): 519.0, should be 363,300FWIW,答案对我来说是可用的,我只是不明白为什么我的代码不能工作。
发布于 2022-05-10 21:14:59
问题是:
return x//denomination你不应该仅仅除以面额,因为这将返回多少单位,你需要一个面额。
相反,您应该返回一个denomination的倍数,以覆盖所需的值。所以要正确地:
return (x//denomination)*denominationhttps://stackoverflow.com/questions/72192916
复制相似问题