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