Jython: análisis de texto para flotar que contiene comas
-
03-07-2019 - |
Pregunta
¿Cómo puedo analizar un flotante escaneado de una hoja como texto, que contiene comas?
txt = "1,903.44"
value = float(txt) # This fails due to ',' in string
ACTUALIZACIÓN: Lo siento, no estaba claro. Estoy usando jython 2.5, que no tiene el módulo de configuración regional.
Solución
txt = "1,903.44"
value = float(txt.replace(',', ''))
Si necesita localización, esto realmente no funcionará, pero funciona si sabe que las comas son sus separadores.
Otros consejos
Use locale.atof ()
después de < code> locale.setlocale (locale.LC_ALL, '') .
Podrías quitar las comas:
txt = txt.replace(',', '')
value = float(txt)
Personalmente utilizaría el paquete decimal al tratar con valores monetarios para evitar fallas bien documentadas que ocurren cuando se usan puntos flotantes.
from decimal import Decimal
txt = txt.replace (',', '')
value = Decimal(txt)
Como lo señalan otros carteles, esto solo funciona si se sabe que su localidad utiliza ',' como separador de miles, pero debería hacer que vaya en la dirección correcta.