python编写程序计算1*2*3_编写一个python程序来计算事务的精确变化

我正在编写一个程序来计算客户交易的零钱,它还将告诉收银员每种面额中有多少可以交给客户(尽管它假设有一个无限填充的收银台)。在

似乎一切都井井有条,工作正常,除了几个例子,我不知道为什么。例如,当我输入$5.65作为到期金额,输入$6.00作为给定金额时,它计算的变化如下:

1 x 0.2美元

1 x 0.1美元

2 x 0.02美元

这显然是不对的。它似乎忽略了这样一个事实:它需要返还5美分的硬币,而不是2*2美分的硬币。这是怎么回事?在

以下是我的源代码:def change():

due = float(raw_input("Amount Due: $"))

paid = float(raw_input("Amount Paid: $"))

change = float(paid - due)

print "\nChange due: $%.2f" % (change)

print "\nHand the customer: "

denom = (20.00, 10.00, 5.00, 2.00, 1.00, 0.50, 0.20, 0.10, 0.05, 0.02, 0.01)

change_due = [" "]*len(denom)

amount = change

while amount > 0:

for i in range(len(denom)):

change_due[i] = int(amount/denom[i])

amount = amount%denom[i]

if change_due[i] > 0:

print "\n" + str(change_due[i]) + " x " + "$" + str(denom[i])

break

change()

注意:使用$符号只是因为我不知道如何在Python中正确地显示一个‘。所以我在“denom”元组中使用了英镑面值。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值