如果已经问过这个问题,请道歉,但为什么会这样:
a=4
b=5
c=float(a/b)
print c
给出
>>>>
0.0
而不是0.8?
答案 0 :(得分:3)
那是因为这是一个整数除法:
>>> 4/5
0
如果你想获得0.8
,则在分割之前将其中一个转为浮动:
>>> 4/float(5)
0.8
答案 1 :(得分:2)
如果您不想在其中一个变量中引入float。你可以这样做:
from __future__ import division
4/5
这将给出你想要的0.8,而不必引入浮动。
答案 2 :(得分:1)
在Python 2中/
如果使用两个整数,则仅返回整数部分 - 如int(0.8)
。你必须使用浮动ie。 float(a)
或4.0
(简称4.
)或* 1.0
print float(4)/5
print 4/float(5)
print 4.0/5
print 4/5.0
print 4./5
print 4/5.
print a*1.0/b # sometimes you can see this method
print a/(b*1.0) # this version need () - without () you get (a/b)*1.0
答案 3 :(得分:1)
在Python 2中,2个整数之间的除法将返回一个整数(舍入到最接近0的整数),在本例中为0
。您的代码基本上是float(0)
,0.0
。
如果要返回浮点数,则需要先将其中一个值更改为浮点数。
在Python 3中更改了此行为,其中2个整数之间的分区将返回浮点数,在这种情况下为0.8
。
答案 4 :(得分:0)
4/5
将返回0,因为它是一个int分区,然后你将浮点数转换为0
答案 5 :(得分:0)
由于整数除法....除以两个整数将返回整数。值0.8被截断为0。
如果您想要浮点答案,则需要将其中一个整数提升为浮点数。
E.G。
c = float(a)/ b