在Python中舍入

CF1*_*F11 7 python decimal rounding

大家好,我目前正在做一个学校项目,甚至我的老师都很难过.在加拿大,便士已被删除,所以现在所有购买都被四舍五入为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,"!"
Run Code Online (Sandbox Code Playgroud)

lev*_*lev 0

In [42]:
x=0.57
int(x/0.05)*0.05

Out[42]:
0.55
Run Code Online (Sandbox Code Playgroud)