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。
答案 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