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'()'的位置的主要内容,如果未能解决你的问题,请参考以下文章

python float'()'的位置

Python3.4.1异常: 'float' object cannot be interpreted as an integer

Python 3给出了错误未解决的参考'long'

python框架Scrapy报错TypeError: 'float' object is not iterable解决

python框架Scrapy报错TypeError: 'float' object is not iterable解决

PYTHON,Midpoint方法,TypeError:'float'对象不能解释为整数