float(float(1)/float(i) * float(score))
答案 0 :(得分:10)
假设Python 2.x:1.0 / i * score
你需要担心的主要情况是划分,因为在Python 2.x中,除法默认为整数除法。为了进行浮点除法,除数或除数需要是浮点数,因此1.0
。因此,1.0/i
将是一个浮点数,并将浮点数乘以得分(可以是整数或浮点数)将产生另一个浮点数。
然而,在python 3.x中,除法默认为浮点除法,因此1 / i * score
可以正常工作。
答案 1 :(得分:3)
你想要的只是Python2中的float(score)/i
。如果一个操作数是一个浮点数,那么结果也是一个浮点数,所以像score/float(i)
或1.0*score/i
这样的代码也可以。
你也可以将from __future__ import division
放在.py文件的顶部,默认情况下你有浮动分区。这意味着您可以编写score/i
,它将是一个浮点数,就像在Python3中一样。
答案 2 :(得分:2)
1.0 * score / i;
应该这样做
答案 3 :(得分:0)
除非我完全错了,否则一个简单的1.0 / i * score
应该会导致浮动。我不确定这只是Python 3。