float'对象不可下标访问

1 投票
2 回答
6429 浏览
提问于 2025-04-17 22:52

我正在尝试制作一个收银机,但在计算税的时候,我希望结果保留两位小数,而不是像$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 个回答

1

如果你是用这个来处理货币的话,我建议你看看这个链接:python 限制浮点数到两位小数。因为浮点数的四舍五入会导致你的计算结果不准确。很多人会把分(也就是美分)存成整数,然后除以100,或者使用Python的Decimal类型。

2

你可以使用 字符串格式化

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

撰写回答