如何用doctest测试浮点结果?

21 投票
5 回答
4803 浏览
提问于 2025-04-15 20:19

我正在开发一个程序,里面有一些浮点数的计算。请问有没有办法用doctests来测试我的函数(这些函数返回浮点数)呢?

5 个回答

10

文档中有个建议

浮点数在不同的平台上可能会有小的输出差异,因为Python在处理浮点数格式时依赖于平台的C库,而不同的C库在这方面的表现差别很大。

>>> 1./7  # risky
0.14285714285714285
>>> print 1./7 # safer
0.142857142857
>>> print round(1./7, 6) # much safer
0.142857
11

以下内容适用于nosetests:

>>> 1/3.  # doctest: +ELLIPSIS
0.333...
16

当然可以,只要根据你对数字精度的预期,给浮点数设置一个合适的格式就行了。比如,如果你希望小数点后有两位数字的准确性,你可以使用:

''' Rest of your docstring and then...

    >>> '%.2f' % funcreturningfloat()
    '123.45'

'''

撰写回答