使用assertAlmostEqual的Python 2.7单元测试工作不正常



我的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

最新更新