Jython: análise de texto a flutuar contendo vírgulas
-
03-07-2019 - |
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.
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.