我的python版本是2.7.13。
我需要使用unittest
模块进行测试,并且我正在测试的数据类型是float。在文档中,它说在比较浮点值是否相等时,使用assertAlmostEqual
来表示较小的差异。
这就是我所做的:
self.assertAlmostEqual(41.7777777777776, 41.777, places=3)
我运行了上面的代码,它产生了一个失败的测试结果,如下所示:
self.assertAlmostEqual(41.7777777777776, 41.777, places=3)
AssertionError: 41.7777777777776 != 41.777 within 3 places
我做错了什么,还是这是一个错误?
您的数字不等于assertAlmostEqual
:定义的小数点后3位
通过计算差值、四舍五入到给定的小数位数(默认值为7(并与零进行比较,测试第一个和第二个是否大致相等。
您的数字之间的差值(四舍五入到小数点后3位(为0.001
。
来自文档:
通过计算差值、四舍五入到给定的小数位数(默认值为7(并与零进行比较,测试第一个和第二个是否大致相等。请注意,这些方法将值四舍五入到给定的小数位数(如round((函数(,而不是有效数字。
在您的案例中,round(41.7777777777776 - 41.777, 3) != 0.0
。