2012-06-19 37 views
24

Có rất nhiều chủ đề ở đây giải thích cách chuyển đổi chuỗi thành số thập phân, nhưng làm cách nào để chuyển đổi số thập phân trở lại thành chuỗi?Python Decimal to String

Giống như nếu tôi đã làm điều này:

import decimal 
dec = decimal.Decimal('10.0') 

Làm thế nào tôi sẽ mất dec và nhận '10.0' (một chuỗi) ra?

+4

Hãy tham khảo tài liệu API trước khi đăng một câu hỏi như thế này. Bạn cũng sẽ nhận được kết quả tốt chỉ đơn giản là bắn lên python, và thử những điều trên. – Marcin

Trả lời

38

Sử dụng the str() builtin, trong đó:

Trả về một chuỗi chứa một biểu diễn độc đáo có thể in được của một đối tượng.

Ví dụ:

>>> import decimal 
>>> dec = decimal.Decimal('10.0') 
>>> str(dec) 
'10.0' 
+5

+1 Quan trọng cần lưu ý rằng 'str()' hoạt động trên khá nhiều thứ trong Python. –

+1

@Greg, và đó là cách nó phải là :) –

+0

vì hầu hết các loại có phương thức __str__ được thực hiện – zinking

4
import decimal 
dec = decimal.Decimal('10.0') 
string_dec = str(dec) 
4

Hầu như tất cả các built-in làm việc trên lớp Decimal như bạn mong chờ:

>>> import decimal 
>>> dec=decimal.Decimal('10.0') 

Một chuỗi:

>>> str(dec) 
'10.0' 

Một float:

>>> float(dec) 
10.0 

Một int:

>>> int(dec) 
10 

Object đại diện (vì nó sẽ được người phiên dịch tương tác):

>>> repr(dec) 
"Decimal('10.0')" 

số Rational:

>>> import fractions 
>>> fractions.Fraction(decimal.Decimal('0.50')) 
Fraction(1, 2) 
17

Sử dụng chức năng định dạng chuỗi:

>>> from decimal import Decimal 
>>> d = Decimal("0.000000000000") 
>>> s = '{0:f}'.format(d) 
>>> print(s) 
0.000000000000

Nếu bạn chỉ cần gõ đúc số thành một chuỗi nó sẽ không làm việc cho số mũ:

>>> str(d) 
'1.23123E-14'