2017-05-18 269 views
0

我有这样计算的正常工作和Python返回我0.计算器不是蟒蛇

percentage = (17/20) * 100 

但是正确的答案是85,如何正确地做到这一点?

+0

'17/20'是整数除法,结果值为0 –

+1

尝试'百分比=(17./20)* 100' – kuro

+0

这是一个整数除法,所以'17/20 = 0'。你可以写'(17.0/20.0)* 100.0'来强制它使用浮点数。 –

回答

4

在Python 2中,/运算符将进行整数除法,如果它的两个参数都是整数。对于你的计算,17/200.85,但由于我们只处理整数,所以它被取整为零。您可以通过将其中一个值转换为浮点数来解决此问题,可以使用构造函数float(),也可以通过将文字更改为包含小数点(17.0/20,正如您所期望的那样)。

这个问题不会出现在Python 3中,其中浮点除法是默认的(您必须使用//运算符来显式请求“floor”除法)。如果需要,可以通过将from __future__ import division置于文件的顶部(在任何其他导入之前),在Python 2中获得Python 3的行为。

0

python2默认情况下使用divide'/'作为int除法。 可能写百分比=(17.0/20)* 100 或

from __future__import division 

,使其作为浮动分裂工作。

0

如果你想拥有这个整数运算,可以随时通过乘以100开始:

percentage = (17 * 100)/20 

这给你的中间结果17 * 100 = 1700,其将作为一个整数1700/20 = 85

它很简单,不会把你带出整数境界。