为什么这个部门不能在Python中工作?
考虑:
>>> numerator = 29 >>> denom = 1009 >>> print str(float(numerator/denom)) 0.0
我如何使它返回一个小数?
在版本3之前,Python的除法运算符/在提供两个整数参数时performance得像C的除法运算符:它返回一个整数结果,当有一个小数部分时,结果被截断。 见: PEP 238
>>> n = 29 >>> d = 1009 >>> print str(float(n)/d) 0.0287413280476
在Python 2(也许更早)中,您可以使用:
>>> from __future__ import division >>> n/d 0.028741328047571853
在Python 2.x中,除法的工作方式类似于类似C的语言:如果两个参数都是整数,结果会被截断为整数,所以29/1009为0,因为float为0.0。 为了解决这个问题,在划分之前先将其转换为浮点数
print str(float(numerator)/denominator)
在Python 3.x中,除法运算更自然,所以您将得到正确的math结果(在浮点错误内)。
在你的评价中,你正在投射结果,你需要改为投掷操作数。
print str(float(numerator)/float(denom))