马邦浩 发表于 2021-1-24 16:00:27

返回值错误

>>> class Rectangle:
        def __init__(self,x,y):
                self.x=x
                self.y=y
        def getPeri(self):
                return (self.x+self.y)*2
        def getArea(self):
                return self.x*self.y

       
>>> a=Rectangle(2.34,1.29)
>>> a.getPeri()
7.26
>>> a.getArea()
3.0185999999999997
魔法方法第一节,代码 一样的,这个返回的不是应该是3.0186,结果程序给我的是3.0185999999997,为什么呢?{:10_243:}

qiuyouzhi 发表于 2021-1-24 16:03:17

精度问题。
你可以试试这样:
def getArea(self):
    from decimal import Decimal
    return Decimal(str(self.x)) * Decimal(str(self.y))
页: [1]
查看完整版本: 返回值错误