如何用doctest测试浮点结果?
我正在开发一个程序,里面有一些浮点数的计算。请问有没有办法用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'
'''