如何打印2位小数?

时间:2013-11-05 04:39:22

标签: python python-2.7

我正在使用python 2.75而且我的工作是打印出我咖啡馆的收据,但我不知道如何将我的价格打印到2位小数,因为它只打印到1位小数地方。我是python的新手,所以如果有人帮忙的话,我们将非常感激!

def main():
print("Welcome to Kenny's Drinking Cafe")
print("Here is the electronic menu: ")
print("Please select by typing the selections from the list below. *CaSe InSeNsItIvE*")
print("Spelling counts though ;)")
print "-------------------------------------------------------------------------------"
print("Coffee   $2.00")
print("Hot Chocolate   $1.50")
print("Latte   $3.00")
print("Frappuccino   $3.00")
print("Smoothie   $3.50")
countcoffee = 0
counthotc = 0
countlatte = 0
countfrap = 0
countsmoothie = 0 
coffeec = 2.00
hotcc = 1.50
lattec = 3.00
frapc = 3.00
smoothiec = 3.50

order1 = raw_input("Please enter your selection: Press Enter to Print receipt ")
while order1 != "":
    order1 = order1.lower()
    if order1 == str("coffee"):
        countcoffee = countcoffee + 1
        order1 = raw_input("Do you want to order more? Select: Coffee, Hot Chocolate, Latte, Frappuccino, Smoothies. Press Enter to Print receipt ")
    elif order1 in [str("hot chocolate"), str("hotchocolate")]:
        counthotc = counthotc + 1
        order1 = raw_input("Do you want to order more? Select: Coffee, Hot Chocolate, Latte, Frappuccino, Smoothies. Press Enter to Print receipt ")
    elif order1 == str("latte"):
        countlatte = countlatte + 1
        order1 = raw_input("Do you want to order more? Select: Coffee, Hot Chocolate, Latte, Frappuccino, Smoothies. Press Enter to Print receipt ")
    elif order1 == str("frappuccino"):
        countfrap = countfrap + 1
        order1 = raw_input("Do you want to order more? Select: Coffee, Hot Chocolate, Latte, Frappuccino, Smoothies. Press Enter to Print receipt ")
    elif order1 == str("smoothie"):
        countsmoothie = countsmoothie + 1
        order1 = raw_input("Do you want to order more? Select: Coffee, Hot Chocolate, Latte, Frappuccino, Smoothies. Press Enter to Print receipt ")
    else:
        print "Please type correctly"
        exit()

coffee = (countcoffee*coffeec)
hotchocolate = (counthotc*hotcc)
latte = (countlatte*lattec)
frappuccino = (countfrap*frapc)
smoothie = (countsmoothie*smoothiec)
sum = (countcoffee*coffeec) + (counthotc*hotcc) + (countlatte*lattec) + (countfrap*frapc) + (countsmoothie*smoothiec)
print ""
print "Kenny's Drinking Cafe Receipt"
print ""
print "***********************"
print "**   Regular Items   **"
print "***********************"
if coffee > 0:
    print (str(countcoffee) + ' coffee ' + "@ $" + str(coffee))
if hotchocolate > 0:
    print counthotc,"hot chocolate","@ $",hotchocolate
if latte > 0:
    print countlatte,"latte", "@ $",latte
if frappuccino > 0:
    print countfrap,"frappuccino","@ $",frappuccino
if smoothie > 0:
    print countsmoothie,"smoothie","@ $",smoothie
print ("BALANCE: $" + str(sum))

main()

2 个答案:

答案 0 :(得分:4)

这应该有帮助

print("BALANCE: $%.2f" % sum)

%运算符替换字符串中提供的参数。而且,.2f指定了所需的格式。

您可以在the docs中找到有关字符串格式的更多信息。

更多 Pythonic 这样做的方法是使用@sortfiend

指定的str.format()
print("BALANCE: {:.2f}".format(sum))

答案 1 :(得分:2)

您可以使用printf样式格式输出浮点数:

>>> "%.2f" % 1
'1.00'
>>> "%.2f" % 1.0
'1.00'
>>> "%.2f" % 1.03
'1.03'
>>> "%.2f" % 1.034
'1.03'

您可以使用相同的表达式分配给变量:

>>> str = "%.2f" % 1.035
>>> str
'1.03'