2012-06-19 21 views
24

Qui ci sono tonnellate di argomenti che spiegano come convertire una stringa in un decimale, ma come posso convertire un decimale in una stringa?Python Decimal to String

Come se ho fatto questo:

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

Come dovrei prendere dec e ottenere '10.0' (una stringa) fuori?

+4

Si prega di consultare la documentazione API prima di inviare una domanda come questa. Otterrete anche buoni risultati semplicemente accendendo Python e provando le cose. – Marcin

risposta

38

Usa the str() builtin, che:

Restituisce una stringa contenente una rappresentazione stampabile di un oggetto.

Esempio:

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

+1 Importante notare che 'str()' funziona praticamente su qualsiasi cosa in Python. –

+1

@Greg, ed è così che dovrebbe essere :) –

+0

perché la maggior parte dei tipi ha il metodo __str__ implementato – zinking

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

Quasi tutti i built-in funzionano sulla classe decimale come ci si aspetterebbe:

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

Una stringa:

>>> str(dec) 
'10.0' 

Un galleggiante:

>>> float(dec) 
10.0 

Un int:

>>> int(dec) 
10 

rappresentazione dell'oggetto (come sarebbe nell'interprete):

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

numero razionale:

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

Usa la funzione di formato stringa:

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

Se è sufficiente digitare il cast del numero in una stringa non funzionerà per gli esponenti:

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