-2
MAX=100
CURRENT=50

def divide():
    global MAX
    global CURRENT
    print float((CURRENT/MAX))

divide()

有人能告诉我为什么会打印出 0.0 吗?

4

2 回答 2

2

您正在使用整数(或地板)除法。改用浮点除法:

print float(CURRENT)/MAX

或者

from __future__ import division

print CURRENT/MAX

Python 2 在将两个整数值相除时,会产生一个整数结果。只有 0 乘以 100 才适合 50,因此结果是 integer 0,然后您将其转换为浮点数。

在 Python 3 中,或者在使用 时from __future__ import division/运算符始终使用浮点除法,并且//添加了一个新的运算符来代替您使用地板除法。

于 2013-05-06T19:50:08.050 回答
1

你正在潜水整数。然后将其转换为浮动。CURRENT/MAX 为 0。float(0) 为 0.0

以下将为您提供所需的结果。

float(CURRENT)/MAX 

或者

CURRENT/float(MAX) 

或者,您可以将全局变量修改为浮点数。

于 2013-05-06T19:52:15.937 回答