[pyar] Convertir decimal con coma

Pablo Ziliani pablo en kultroom.com
Mie Ago 4 19:42:21 ART 2010


Pablo Ziliani wrote:
> Mauricio Cleveland wrote:
>>
>>
>> El 4 de agosto de 2010 18:18, Diego Mascialino <dmascialino en gmail.com 
>> <mailto:dmascialino en gmail.com>> escribió:
>>
>>     2010/8/4 Mauricio Cleveland <mauricio.cleveland en gmail.com
>>     <mailto:mauricio.cleveland en gmail.com>>:
>>     > Entonces estaba pensando en transformar a listas, desde string y
>>     luego
>>     > eliminar la coma reemplazandola con el punto.
>>
>>     No entendí esto, de transformar a lista... para hacer esto podes
>>     hacer:
>>     >>> '4,5'.replace(',','.')
>>     '4.5'
>>
>>
>> Si, es que el valor me lo entrega como tupla.
>>  
>>
>>
>>     >
>>     > No se si existe otra solución?
>>     Sí, mira:
>>
>>     >>> import locale
>>     >>> locale.setlocale(locale.LC_ALL,"es_AR")
>>     'es_AR'
>>     >>> locale.atof('4,5')
>>     4.5
>>
>>
>> Excelente, caso cerrado!
>> Gracias :D.
>
> ...a no ser que no puedas depender de que es_AR (o el locale que vayas 
> a usar) esté efectívamente instalado en el sistema que corre el 
> script. Si vos tenés strings formateadas siempre de la misma forma 
> (ej. con comas), dudo que haya algo mejor que el str.replace.
>
> ej.:
>
> >>> mi_lista_de_floats = [ s.replace(',', '.') for s in 
> mi_tupla_de_strings]
>

Perdón, error pavo: para obtener una lista floats (no sé si era a lo que 
querías llegar) me olvidé de hacer la conversión:

 >>> mi_lista_de_floats = [ float(s.replace(',', '.')) for s in 
mi_tupla_de_strings]



More information about the pyar mailing list