MAX=100
CURRENT=50
def divide():
global MAX
global CURRENT
print float((CURRENT/MAX))
divide()
有人可以告诉我为什么打印出0.0?
答案 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)
或者,您可以将全局变量修改为浮点数。