2012-06-19 29 views
24

Hay un montón de temas aquí que explican cómo convertir una cadena a un decimal, pero ¿cómo convierto un decimal de nuevo en una cadena?De decimal de Python a la cadena

Al igual que si hiciera esto:

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

¿cómo voy a dec y obtener '10.0' (una cadena) a cabo?

+4

Consulte la documentación de la API antes de publicar una pregunta como esta. También obtendrás buenos resultados simplemente disparando python y probando cosas. – Marcin

Respuesta

38

Uso the str() builtin, que:

Devuelve una cadena que contiene una representación muy bien imprimible de un objeto.

Ej:

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

+1 Es importante tener en cuenta que 'str()' funciona en prácticamente cualquier cosa en Python. –

+1

@Greg, y así es como debería ser :) –

+0

porque la mayoría de los tipos tiene el método __str__ implementado – zinking

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

Casi todos los muebles empotrados trabajan en la clase decimal como era de esperar:

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

Una cadena:

>>> str(dec) 
'10.0' 

Un flotador:

>>> float(dec) 
10.0 

Un int:

>>> int(dec) 
10 

Representación de objetos (como lo sería en el intérprete interactivo):

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

número racional:

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

Use la función de formato de cadena:

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

Si sólo tiene que teclear el número fundido a una cadena no va a funcionar para exponentes:

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