Python中的Tip计算器

2024-05-29 03:10:29 发布

您现在位置:Python中文网/ 问答频道 /正文

def solve(meal_cost, tip_percent, tax_percent):
    tip_percent=float(meal_cost * (tip_percent / 100))
    tax_percent=float(meal_cost * (tax_percent / 100))
    total_cost=meal_cost + tip_percent + tax_percent
    return (total_cost)
print(solve(12, 20, 8))

答案应该是15,但上面给出的是12.0。不知道为什么。 当我试着打印小费百分比,它给0.0。你知道吗

小费百分比计算如下:

float(meal_cost * (tip_percent / 100))

我在初级阶段学习Python。你知道吗


Tags: 答案returndeffloattotal百分比taxprint
2条回答

这是因为您正在使用python2进行测试,python2返回12.0。 在Python3中,同样的代码将返回15.36。你知道吗

原因是Python改变了在python3中处理除法的方式。你知道吗

例如:
3/2=1(在Python 2.7.6中)
3/2=1.5(在Python 3.4.1中)

将其除以100.0(不是除以100)。
你可以在这里找到例子:https://riptutorial.com/python/example/2797/integer-division

您的结果与使用python2的结果一致。在Python中,如果要除数是整数,那么/就是整数除法。要强制浮点数学将100更改为100.0,请执行以下操作:

def solve(meal_cost, tip_percent, tax_percent):
    tip_percent=float(meal_cost * (tip_percent / 100.0))
    tax_percent=float(meal_cost * (tax_percent / 100.0))
    total_cost=meal_cost+tip_percent+tax_percent
    return total_cost
print(solve(12,20,8))

或者改为使用python3。你知道吗

结果:

15.36

相关问题 更多 >

    热门问题