查看文档,默认情况下approx方法会对数字进行3位小数点的评估,但当我比较这个值时,它返回False pytest.approx(6.495) == 6.49 # False 如何检查一个数字是否在小数位上与另一个数字接近?
它并没有说默认值是三位小数,而是说它在 1e-6 - 或者 0.000001 的相对容差内。默认情况下,approx 认为与期望值的相对误差在 1e-6(即一百万分之一)以内的数字是相等的。如果期望值为 0.0,则会产生令人惊讶的结果,因为除了 0.0 本身以外,没有任何数字与 0.0 相对接近。为了更少出现这种情况,approx 还认为与期望值的绝对误差在 1e-12 内的数字是相等的。 rel 参数可用于更改被视为近似相等的值。>>> pytest.approx(6.495, rel=1e-3) == 6.49 True
1e-3
,而不需要每次都传递参数? - Rafa Acioly