全球不分?

时间:2013-05-06 19:48:16

标签: python function global-variables

MAX=100
CURRENT=50

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

divide()

有人可以告诉我为什么打印出0.0?

2 个答案:

答案 0 :(得分:2)

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

print float(CURRENT)/MAX

from __future__ import division

print CURRENT/MAX

Python 2,当划分两个整数值时,会产生整数结果。只有0次100适合50,所以结果是整数0,然后你将其转换为浮点数。

在Python 3中,或者在使用from __future__ import division时,/运算符总是使用浮点除法,并添加了一个新的运算符//而你是地板部门。

答案 1 :(得分:1)

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

以下内容可为您提供所需的结果。

float(CURRENT)/MAX 

CURRENT/float(MAX) 

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