2010-03-11 19 views

Trả lời

8

Chắc chắn, chỉ cần định dạng nổi với một định dạng hợp lý, dựa trên kiến ​​thức của bạn về những gì chính xác bạn mong đợi họ để triển lãm - ví dụ, nếu bạn mong đợi chính xác đến 2 chữ số sau dấu thập phân, bạn có thể sử dụng:

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

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

''' 
8

The documentation có một gợi ý

số Floating-point cũng tùy thuộc vào sự thay đổi sản lượng nhỏ trên nền tảng, bởi vì Python trì hoãn đến thư viện nền tảng C choĐịnh dạng nổivà các thư viện C khác nhau về chất lượng ở đây là .

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

Định dạng chuỗi cho phép sử dụng bộ kiểm tra.

>>> funcreturningfloattuple(1.0) 
(1.0, 1.0) 
>>> '%.2f, %.2f' % funcreturningfloattuple(1.0) 
'1.00, 1.00' 

>>> funcreturningfloattuple(1.4) 
(1.3999999999999999, 1.3999999999999999) 
>>> '%.2f, %.2f' % funcreturningfloattuple(1.4) 
'1.40, 1.40' 
5

Các công trình sau đây cho nosetests:

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

Bạn có thể sử dụng numtest - một phần mở rộng doctest mà đơn giản hoá sự thử thách của kết quả số. https://pypi.python.org/pypi/numtest

>>> 1.0/3 
0.333 

dụ Không: 1.0/3 dự kiến: 0,333 Got: 0,3333333333333333

>>> 1.0/3 # doctest: +NUMBER 
0.333 

import doctest 
import numtest 
doctest.testmod() 

Process xong với mã exit 0

Tất cả các thử nghiệm đã được chuyển. Không cần định dạng chuỗi trong các bài kiểm tra của bạn.

Các vấn đề liên quan