python float'()'的位置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python float'()'的位置相关的知识,希望对你有一定的参考价值。
请问有什么区别:
return float((Y2-Y1))/(X2-X1)
和:
return float((Y2-Y1)/(X2-X1))
我的整个代码是:
class Line(object):
def __init__(self,coor1,coor2):
self.coor1 = coor1
self.coor2 = coor2
def slope(self):
x1,y1 = self.coor1
x2,y2 = self.coor2
return float((Y2-Y1))/(X2-X1)
coor1 = (3,2)
coor2 = (8,10)
li = Line(coor1,coor2)
li.slope()
答案应该是1.6,但如果我的代码中的返回部分是return float((Y2-Y1)/(X2-X1))
,答案将是1.0。
答案
在Python 2中,除非导入3.x功能,否则使用'/'的整数除法会抛弃余数。
>>> 8.0/5
1.6
>>> 8/5
1
>>> from __future__ import division
>>> 8/5
1.6
用'//'划分总是留下余数。
>>> 8//5
1
另一答案
Python 2整数除法:
>>> float(8) / 5
1.6
>>> float(8 / 5)
1.0
修复:
>>> from __future__ import division
>>> float(8) / 5
1.6
>>> float(8 / 5)
1.6
另一答案
在python 2中,除法默认为整数1,它将始终舍入为int
在你执行float(8/5)
的情况下,你正在施放浮动分割结果为1.6并且舍入为1.0
通过将8投射到浮子(8)然后除以5,你强制进行浮动除法,得到正确的结果。同样的事情也会发生
8/float(5)
以上是关于python float'()'的位置的主要内容,如果未能解决你的问题,请参考以下文章
Python3.4.1异常: 'float' object cannot be interpreted as an integer
python框架Scrapy报错TypeError: 'float' object is not iterable解决