MAX=100
CURRENT=50
def divide():
global MAX
global CURRENT
print float((CURRENT/MAX))
divide()
有人能告诉我为什么会打印出 0.0 吗?
MAX=100
CURRENT=50
def divide():
global MAX
global CURRENT
print float((CURRENT/MAX))
divide()
有人能告诉我为什么会打印出 0.0 吗?
您正在使用整数(或地板)除法。改用浮点除法:
print float(CURRENT)/MAX
或者
from __future__ import division
print CURRENT/MAX
Python 2 在将两个整数值相除时,会产生一个整数结果。只有 0 乘以 100 才适合 50,因此结果是 integer 0
,然后您将其转换为浮点数。
在 Python 3 中,或者在使用 时from __future__ import division
,/
运算符始终使用浮点除法,并且//
添加了一个新的运算符来代替您使用地板除法。
你正在潜水整数。然后将其转换为浮动。CURRENT/MAX 为 0。float(0) 为 0.0
以下将为您提供所需的结果。
float(CURRENT)/MAX
或者
CURRENT/float(MAX)
或者,您可以将全局变量修改为浮点数。