2014-03-18 31 views
1

我試圖做一個收銀機,但是當我做了稅,我想保留兩位小數擁有它,而不是像$ 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) 

但我得到的錯誤。任何幫助?

+1

您不能在'float'上使用括號''[']'。如果您希望該語法有效,則需要使它們成爲字符串。 'STR(tprice)'。 –

+0

'tprice'是一個浮點數,你不能像那樣索引它。打印時您只想將它​​四捨五入? – CoryKramer

+0

只需使用[字符串格式](http://docs.python.org/2/library/stdtypes.html#str.format),而不是嘗試硬編碼四捨五入或任何它你希望做的那些下標。例如' '{0:.2f}'。格式(HST)' –

回答

2

您可以使用string formatting

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