【发布时间】:2013-12-11 15:57:21
【问题描述】:
大家好,我目前正在做一个学校项目,甚至我的老师也很难过。在加拿大,一分钱已被删除,因此现在所有购买都四舍五入为 0 或 5。例如,5.53 将变为 5.55,5.52 将变为 5.50。我试图让我的程序像这样循环,但我不知道如何。我知道如何四舍五入到小数位,但我不知道如何四舍五入到这样的细节。任何帮助将不胜感激!
这是我的代码。该项目是关于制作一个收银员可以在咖啡店使用的程序。
order = ['coffee', 'tea', 'hashbrown','jelly','cream','chocolate','glazed','sandwich','bagel','cookie','pannini']
quantity = ['0','0','0','0','0','0','0','0','0','0','0']
# coffee = $1
# Tea = $1.30
# hashbrown = $1.25
# all donuts = $1.50
# sandwich = $2.50
# bagel = $2
# cookie = $0.50
# pannini = $4
cashier = 1
total = 0
while cashier == 1:
print "What did the customer order?"
ordered = input ()
while ordered > 10 or ordered < 0:
print "Do you want to input a valid order?"
ordered = input ()
print "How many are being ordered?"
quantityorder = input ()
quantity[ordered] = quantityorder
print "Ordered",quantityorder,"",order[ordered],"!"
if ordered == 0:
ordered = 1.0
elif ordered == 1:
ordered = 1.30
elif ordered == 2:
ordered = 1.25
elif ordered == 3 or ordered == 4 or ordered == 5 or ordered == 6:
ordered = 1.50
elif ordered == 7:
ordered = 2.50
elif ordered == 8:
ordered = 2
elif ordered == 9:
ordered = 0.50
else:
ordered = 4.0
price = ordered * quantityorder
total = total + price
print "Anything else?"
cashier = input () #If the user inputs 1 then they can input another order if they didn't put in 1 then the program assumes that it is the end of a customers order
print "Your total is $", total * 1.13,"!"
total = total * 1.13
print
print "How much money was given?"
print
money = input ()* 1.0
while money < total:
print "Please input a valid number!"
money = input ()
print "The change should be $",money - total,"!"
【问题讨论】:
-
为我们提供一些代码。请记住,您的程序可能将数字处理为 numbers 或 strings,并且处理它的最佳方法是不同的,具体取决于程序会处理您的号码。给我们代码,你给我们上下文来帮助我们给你一个有意义的答案!
-
将其翻倍,圆形,然后减半。
-
目前投票率最高的答案(@haael,依靠
quantize)是完全错误的。我目前没有足够的时间来真正制定出一个强大的解决方案,但是来自相关问题的this answer 是一种更好的方法。是的,它是float,这是我必须检查的,但如果需要,至少它可以适应Decimal。 -
另外,对于它的价值,@wim 的评论包含一种可行的方法。它可以充实为一个答案。