Python中的提示计算器

时间:2019-02-20 05:01:20

标签: python python-3.x

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。不知道为什么。 当我尝试打印tip_percent时,它的值为0.0。

tip_percent计算如下:

float(meal_cost * (tip_percent / 100))

我在开始学习Python。

2 个答案:

答案 0 :(得分:1)

您的结果与使用Python 2一致。在Python 2中,如果要除的数是整数,则Fatal Exception: java.lang.IndexOutOfBoundsException: setSpan (4 ... 4) ends beyond length 0 at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1096) at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:671) at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:664) at android.text.Selection.setSelection(Selection.java:76) at android.text.Selection.setSelection(Selection.java:87) at android.widget.EditText.setSelection(EditText.java:98) at android.widget.EditText.performAccessibilityActionInternal(EditText.java:138) at android.view.View.performAccessibilityAction(View.java:8892) at android.view.AccessibilityInteractionController.performAccessibilityActionUiThread(AccessibilityInteractionController.java:668) at android.view.AccessibilityInteractionController.-wrap6(AccessibilityInteractionController.java) at android.view.AccessibilityInteractionController$PrivateHandler.handleMessage(AccessibilityInteractionController.java:1194) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5459) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 是整数除法。要强制将浮点数学更改从/更改为100

100.0

或更改为使用Python 3。

结果:

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))

答案 1 :(得分:0)

那是因为您正在使用Python 2进行测试,该Python返回12.0。 在Python 3中,相同的代码将返回15.36。

原因是Python改变了他们在Python 3中处理除法的方式。

例如:
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