【问题标题】:Tip calculator returns zeros [duplicate]提示计算器返回零[重复]
【发布时间】:2016-12-30 09:57:30
【问题描述】:

我在运行我编写的代码时遇到了一些问题。

meal = float(raw_input("How much did your meal cost? "))

tax = 6.75 / 100
tip = 15 / 100

total = (meal * tax) * tip

print total

您可以在上面看到我制作了这个“小费计算器”。每当我输入一个数字时,它都会返回零。好像跳过了整个计算部分。

有什么办法吗?

【问题讨论】:

  • tip = 15.0 / 100 而不是tip = 15 / 100
  • total=meal + (meal * tax) + meal * tip 为实际总数

标签: python


【解决方案1】:

问题出在这一行:

tip = 15 / 100

int 除以int 将得到int。在这种情况下,15 / 100 给你0,而互补模运算15 % 100 给你15 余数。

如果您将15 更改为float,它将起作用,因为保留了精度,并且tip 将是float 而不是int。试试:

tip = 15.0 / 100

【讨论】:

    【解决方案2】:

    如果是 python 2.7,你正在做整数除法,这意味着你的小费计算为 15/100 = 0。

    from __future__ import division
    

    程序顶部会解决这个问题。

    【讨论】:

      【解决方案3】:

      在 python 2 中,/ 是整数除法。因此,15 / 100 = 0,而您对此略有不同。只需将 15 替换为 15.0

      【讨论】:

      • 这并不完全正确。在 Python 2 中,/ 执行整数除法,如果(& 仅当)它的两个操作数都是整数(除非你这样做 from __future__ import division)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-27
      • 2020-02-12
      • 1970-01-01
      • 1970-01-01
      • 2013-05-13
      • 1970-01-01
      相关资源
      最近更新 更多