Джитон:синтаксический анализ текста с плавающей запятой, содержащий запятые
-
03-07-2019 - |
Вопрос
Как я могу проанализировать число с плавающей запятой, отсканированное с листа, как текст, содержащий запятые?
txt = "1,903.44"
value = float(txt) # This fails due to ',' in string
ОБНОВЛЯТЬ:Извините, я не ясно выразился.Я использую jython 2.5, в котором нет модуля локали.
Решение
txt = "1,903.44"
value = float(txt.replace(',', ''))
Если вам нужна локализация, это не сработает, но поможет, если вы знаете, что вашими разделителями являются запятые.
Другие советы
Использовать locale.atof()
после locale.setlocale(locale.LC_ALL, '')
.
Можно убрать запятые:
txt = txt.replace(',', '')
value = float(txt)
Лично я бы использовал десятичный пакет при работе с денежными значениями, чтобы избежать хорошо документированные подводные камни которые возникают при использовании плавающих точек.
from decimal import Decimal
txt = txt.replace (',', '')
value = Decimal(txt)
Как отмечают другие авторы, это работает только в том случае, если известно, что в вашем регионе используется «,» в качестве разделителя тысяч, но это должно помочь вам двигаться в правильном направлении.