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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top