2012-05-26 10 views

答えて

63

整数除算を実行すると、Python 2では25/100がゼロになります。結果は1より小さいためです。

from __future__ import divisionをスクリプトに追加することでこれを修正することができます。 /演算子を使用する場合は常に浮動小数点除算を実行し、整数除算の場合は//を使用します。

もう1つのオプションは、オペランドの少なくとも1つを浮動小数点にすることです。 25.0/100

Python 3では、25/100は常に0.25です。

1

25/100は、0に丸め(切り捨て)する整数演算です。

+2

些細なニックピッキング、それはあまり切り捨てとして丸めていません。 – Levon

+0

@ Levonこれは四捨五入の形ですが、そうです。 – Marcin

10

これは、整数の切り捨て(つまり、数値の小数部分は破棄されます)の問題です。だから、:

25/100.0または25.0/100または25.0/100.0

25/100は限りフロートがある部門のオペランドの少なくとも1として、しかし0

与え、あなたはフロート結果を得るでしょうすべて与えます0.25

+0

数値が変数に格納されている場合、どうすればよいでしょうか?たとえば、x/y(x = 4、y = 3)。またはx = someObject.size。 – altabq

+4

これを行う1つの方法は、tpが数字の1つに1.0を掛けることです。たとえば、「1.0 * x/2」や「float(x)/ 2」を実行すると、別の方法があるかもしれませんが、これらは頭の上から気になります。プログラムでコード化する前に、対話形式で結果を検証できます。希望が役立ちます。 – Levon

+0

はい、返信いただきありがとうございます! – altabq

関連する問題