我刚学Python,想为计算器编程一个销售税按钮

-1 投票
5 回答
2050 浏览
提问于 2025-04-16 05:17

我最近刚开始学习Python编程,遇到了一个关于税和钱的四舍五入问题,搞不清楚怎么处理。我发现小数总是不能正确地向上舍入到百分位,比如在我们州,销售税是9.5%,所以买5美元的东西,税应该是0.48美元,但实际上是0.475美元。我试过使用math.ceil,但好像它只对整数有效。有没有简单的方法可以让任何千分位的小数都向上舍入?比如0.471应该舍入到0.48。

谢谢!

5 个回答

1

要把数字四舍五入到小数点后两位,可以用 round 这个函数:

round(5*0.095,2)

补充说明:我现在明白了,你是想要把数字向上取整。为了做到这一点,你可以使用 math.ceil(100*x)/100

2

你可能需要重新考虑一下你是怎么表示数字的。最好把所有的数值都当成整数来处理,然后在需要打印或者显示结果的时候再格式化。这种做法可以让你不用担心浮点数的错误,而且还可以使用数学中的向上取整函数 math.ceil。

6

对于金额的处理,使用Python的decimal模块会更好。这样你就不会遇到浮点数表示的问题,而且数字会保持在两位小数(也就是分)的精度。

import decimal

def calculateVat(price):
    VAT = decimal.Decimal('0.095')
    return (price * VAT).quantize(price, rounding=decimal.ROUND_UP)

price =  decimal.Decimal('5.00')

# calculateVat(price) returns:
# Decimal('0.48')

撰写回答