'浮动'对象不可订阅

时间:2014-03-18 20:37:06

标签: python typeerror

我试图制作一个收银机,但是当我缴税时,我希望它有两位小数,而不是$ 3.006743

我试着这样做:

elif item == 'done':
    os.system('cls')
    tprice = sprice * 1.13
    hst = tprice - sprice
    if tprice >= 1:
        tprice = tprice[0:5]
    elif tprice >= 10:
        tprice = tprice[0:6]
    elif tprice >= 100:
        tprice = tprice[0:7]
    if hst >= 1:
        hst = hst[0:5]
    elif hst >= 10:
        hst = hst[0:6]
    elif hst >= 100:
        hst = hst[0:7]
    print(receipt)

但是我得到了错误。有什么帮助吗?

2 个答案:

答案 0 :(得分:2)

您可以使用string formatting

>>> '{:.2f}'.format(3.123456) 
'3.12'
>>> '$ {:.2f}'.format(12.999)
'$ 13.00'
>>> '{:.2f}'.format(.029)
'0.03'

答案 1 :(得分:1)

如果您将此用于货币,我还建议您查看python limiting floats to two decimal points,因为舍入浮点数会导致计算错误。很多人存储美分(整数)并除以100,或者使用python的Decimal类型。