为什么这个划分没有正确执行?
我在 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
谢谢
I've a strange issue in Python: the division is not performed correctly:
print pointB[1]
print pointA[1]
print pointB[0]
print pointA[0]
print (pointB[1]-pointA[1]) / (pointB[0]-pointA[0])
These are the results:
100
50
100
40
0
thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
上述行为对于 Python 2 来说是正确的。
/
的行为在 Python 3 中已修复。在 Python 2 中,您可以使用:然后使用
/
来获得您想要的结果。由于您要除两个整数,因此得到的结果为整数。
或者,将其中一个数字更改为
浮点
。The above behavior is true for Python 2. The behavior of
/
was fixed in Python 3. In Python 2 you can use:and then use
/
to get the result you desire.Since you are dividing two integers, you get the result as an integer.
Or, change one of the numbers to a
float
.这样做是正确的。
50/60 = 0
也许您正在寻找 50.0/60.0 = 0.83333333333333337,您可以将变量转换为 float 以获得:
It is done correctly.
50/60 = 0
Maybe you are looking for 50.0/60.0 = 0.83333333333333337, you can cast your variables to float to get that:
这就是 python 中整数除法的工作原理。在计算中使用浮点数或转换为浮点数:
This is how integer division works in python. Either use floats or convert to float in your calculation: