2010-12-29 7 views
2
float(float(1)/float(i) * float(score)) 

답변

10

가정 파이썬 2.X는 : 파이썬 2.X에서, 부문이 부문을 정수로 기본값으로되어 있기 때문에 1.0/i * score

당신에 대해 걱정할 필요가 주요 사건은 부서입니다. 부동 소수점 나누기를 사용하려면 배수 또는 제수가 부동이어야하므로 1.0입니다. 따라서 1.0/i은 부동 소수점이며 부동 소수점을 점수 (정수 또는 부동 소수 일 수 있음)에 곱하면 다른 부동 소수점 숫자가됩니다.

그러나 파이썬 3.x에서는 나눗셈이 부동 소수점 나누기로 기본 설정되어 있으므로 1/i * score이 작동합니다.

+1

+1. 완벽하고 더 많은 캐릭터! – slezica

0

내가 완전히 틀리면 않는 한, 간단한 1.0/i * score는 float이됩니다. 그게 파이썬 3 일 뿐인지는 확실치 않습니다.

+4

in python 3,'score/i' – Jimmy

2

1.0 * score/i; 당신이 원하는 무엇

3

단순히 Python2에서 float(score)/i입니다해야한다. 한 피연산자가 부동 소수점이면 결과도 float이 될 것이므로 score/float(i) 또는 1.0*score/i과 같은 코드도 사용할 수 있습니다.

from __future__ import division을 .py 파일의 맨 위에 놓을 수 있으며 기본적으로 플로팅 나누기가 있습니다. 즉, score/i을 쓸 수 있으며 Python3에서와 같이 float이됩니다.

+2

그리고 'score/i'와 함께'from __future__ import divison'만이'score'와'i'가'decimal.Decimal'으로 작동하는 유일한 방법입니다. –

관련 문제