7

Pythonで奇妙な問題が発生しました:除算が正しく実行されていません:

print pointB[1]
print pointA[1]
print pointB[0]
print pointA[0]
print  (pointB[1]-pointA[1]) / (pointB[0]-pointA[0])

結果は次のとおりです。

100
50
100
40
0

ありがとう

4

3 に答える 3

18

上記の動作はPython2にも当てはまります。の動作はPython3/で修正されました。Python2では次を使用できます。

from __future__ import division

そして、/あなたが望む結果を得るために使用します。

>>> 5 / 2
2
>>> from __future__ import division
>>> 5 / 2
2.5

2つの整数を除算しているため、結果は整数になります。

または、番号の1つを。に変更しfloatます。

>>> 5.0 / 2
2.5
于 2010-10-03T18:28:27.743 に答える
9

それは正しく行われます。

50/60 = 0

50.0 / 60.0 = 0.83333333333333337を探している場合は、変数をfloatにキャストして、次のようにすることができます。

print  float(pointB[1]-pointA[1]) / (pointB[0]-pointA[0])
于 2010-10-03T18:29:48.857 に答える
3

これは、Pythonで整数除算がどのように機能するかです。計算でfloatを使用するか、floatに変換します。

float(pointB[1]-pointA[1]) / (pointB[0]-pointA[0])
于 2010-10-03T18:29:47.727 に答える