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

答えて

10

と仮定すると、Pythonの2.xのは:Pythonの2.xでは、除算は除算を整数にデフォルトで設定されているので1.0/i * score

あなたが心配する必要がある主なケースは、部門です。浮動小数点除算を行うには、被除数または除数のいずれかを浮動小数点にする必要があります。したがって、1.0です。したがって、1.0/iは浮動小数点数になり、浮動小数点をスコア(整数または浮動小数点にすることができます)に掛ければ、別の浮動小数点数になります。

しかし、python 3.xでは、除算のデフォルトは浮動小数点除算なので、1/i * scoreが動作します。

+1

+1。完璧で、さらにいくつかのキャラクター! – slezica

0

私が全く間違っていない限り、単純な1.0/i * scoreは浮動小数点になります。それがPython 3のみであるかどうかはわかりません。

+4

のpython 3、 'score/i' – Jimmy

2

1.0 * score/i;は何をしたい、それ

3

は単にPython2でfloat(score)/iで行う必要があります。 1つのオペランドが浮動小数点の場合、結果も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'と同じコードを動作させる唯一の方法です。 –

関連する問題