我在Python 2.7 Interpreter中尝试这个。
>>> print 1/10
0
>>> print float(1/10)
0.0
>>> print 1/5
0
>>> a = 1/5
>>> a
0
>>> float(a)
0.0
>>>
当我分开时,我想要一个浮点值。关于这个零输出背后的逻辑的任何想法,请让我知道如何正确地做到这一点。
答案 0 :(得分:7)
浮点转换发生在>整数除法之后。试试这个:
>>> print(1.0/10)
0.1
答案 1 :(得分:5)
在Python 2.x中,默认情况下/
表示与两个整数参数一起使用时的整数(截断)除法。在Python 3.x中,/
始终表示 float 除法,//
始终表示整数除法。您可以使用以下命令获取2.x中的Python 3.x行为:
from __future__ import division
有关除法运算符的完整讨论,请参阅PEP 238。
答案 2 :(得分:3)
您需要执行以下操作:
print (1.0/10)
当你这样做时:
print 1/10
它将其评估为0,因为它将其视为整数。
当你这样做时:
print float(1/10)
你把那些东西放在float()中并首先评估它,所以基本上你得到:
print float(0)
哪个是0.0
答案 3 :(得分:1)
整数除法1/10
返回整数0
。将整数0
转换为float,只返回0.0
。你需要做的是划分浮点数和一个整数来得到一个浮点数。这将有效。
>>> 1/10.0
0.1
或
>>> 1.0/10
0.1
答案 4 :(得分:1)
integer
除法的结果为integer
。
/(division)和//(floor division)运算符产生商 他们的论点。数字参数首先转换为a 普通类型。普通或长整数除法产生整数 相同类型;结果是与数学划分的结果 'floor'函数应用于结果
尝试
>>> 1.0/5
0.20000000000000001
>>> 1/5.0
0.20000000000000001
>>>
答案 5 :(得分:1)
您想要执行以下操作:
(float (1)/10)
答案 6 :(得分:0)
Python 2中整数之间的分区返回整数结果。 (在Python 3中,它会返回您可能期望的浮点结果。)
要获得浮点结果,请将至少一个整数转换为浮点数:
>>> print(1/10)
0
>>> print(1/float(10))
0.1
>>> print(float(1)/10)
0.1
>>> print(float(1)/float(10))
0.1