我有两个整数值a和b,但我需要它们在浮点数中的比值。我知道a < b,我想计算a / b,所以如果我用整数除法,我总是得到0,余数是a。
如何在以下Python 2中强制c为浮点数?
c = a / b
在3。X,行为是相反的;参见为什么整数除法产生一个浮点数而不是另一个整数?反之为3。x-specific问题。
我有两个整数值a和b,但我需要它们在浮点数中的比值。我知道a < b,我想计算a / b,所以如果我用整数除法,我总是得到0,余数是a。
如何在以下Python 2中强制c为浮点数?
c = a / b
在3。X,行为是相反的;参见为什么整数除法产生一个浮点数而不是另一个整数?反之为3。x-specific问题。
当前回答
在Python 3中。X,单斜杠(/)总是表示真(非截断)除法。(//运算符用于截断除法。)在Python 2中。X(2.2及以上),您可以通过放置一个
from __future__ import division
在模块的顶部。
其他回答
c = a / (b * 1.0)
如果你想默认使用"true"(浮点)除法,有一个命令行标志:
python -Q new foo.py
这里有一些缺点(来自PEP):
有人认为,命令行选项可以更改 违约是邪恶的。如果做错了,肯定会很危险 手:举个例子,不可能组合第三个手 需要-Qnew的party库包与另一个 需要-Qold。
通过查看python手册页,您可以了解更多关于更改/警告除法行为的其他标志值。
有关除法更改的详细信息,请参阅:PEP 238—更改除法操作符
from operator import truediv
c = truediv(a, b)
a是被除数,b是除数。 当两个整数除法后的商为浮点数时,此函数非常方便。
在python2中,两个整型的除法得到一个整型。在Python 3中,它产生一个浮点数。我们可以通过从__future__导入来获得新的行为。
>>> from __future__ import division
>>> a = 4
>>> b = 6
>>> c = a / b
>>> c
0.66666666666666663
在Python 3中。X,单斜杠(/)总是表示真(非截断)除法。(//运算符用于截断除法。)在Python 2中。X(2.2及以上),您可以通过放置一个
from __future__ import division
在模块的顶部。