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
파이썬 2 개의 정수 값을 나눈 정수 결과를 초래한다. 50 번에 100 번만 입력하면 결과가 정수 0
이되며, float으로 캐스팅됩니다.
, 또는 from __future__ import division
를 사용하여 /
운영자 항상 부동 사용합니다 포인트 부문, 대신 당신에게 바닥 부문을 제공 //
가 추가 된 새로운 연산자.
다이빙 정수입니다. 그런 다음이를 부동으로 변환합니다. CURRENT/MAX는 0입니다. float (0)은 0.0
다음은 원하는 결과를 제공합니다.
float(CURRENT)/MAX
또는
CURRENT/float(MAX)
는 다른 방법으로는 수레에 전역 변수를 수정할 수 있습니다.
int를 나눈 다음 float로 변환합니다. Make Max = 100.0 – dansalmo
부수적으로'global' 문은 필요 없습니다. 함수 내에서 그 이름에 *를 * 할당하려는 경우에만'global'이 필요합니다. – mgilson