Pergunta

Como posso analisar uma bóia digitalizados a partir de uma folha de texto, contendo vírgulas?

txt = "1,903.44"
value = float(txt) # This fails due to ',' in string

UPDATE: Desculpe, eu não estava claro. Estou usando jython 2.5, que não tem o módulo local.

Foi útil?

Solução

txt = "1,903.44"
value = float(txt.replace(',', ''))

Se você precisar a localização, isto irá realmente não trabalho, mas ele faz o truque se você sabe que vírgulas são os seus separadores.

Outras dicas

Use locale.atof() após locale.setlocale(locale.LC_ALL, '').

Você poderia tirar as vírgulas:

txt = txt.replace(',', '')
value = float(txt)

Eu pessoalmente usar o pacote decimal quando se lida com valores monetários para evitar armadilhas bem documentados que ocorrem quando usando pontos flutuantes.

from decimal import Decimal
txt = txt.replace (',', '')
value = Decimal(txt)

Como observado por outros cartazes, isso só funciona se sua localidade é conhecida a utilização '' como separador de milhares, mas deverá fazê-lo indo na direção certa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top