Assert计算精度

计算机其实是不认识十进制数,它只认识二进制数,也就是说,当我们以十进制数进行运算的时候,计算机需要将各个十进制数转换成二进制数,然后进行二进制间的计算。如进行浮点数金额计算时会出现如下错误:

class TestAdd:

    def test_add_01(self):
        assert 0.1 + 0.2 == 0.3

执行结果:

为了解决这个问题,可以依赖第三方库,decimal,安装方式

pip install pydecimal

安装完毕后,计算金额时,操作如下:

from decimal import Decimal

class TestAdd:

    # def test_add_01(self):
    #     assert 0.1 + 0.2 == 0.3

    def test_add_02(self):
        assert Decimal("0.1") + Decimal("0.2") == Decimal("0.3")

结果:

posted @ 2020-08-09 20:35  xyztank  阅读(83)  评论(0)    收藏  举报