Jython: синтаксический анализ текста с плавающей точкой, содержащей запятые - PullRequest
1 голос
/ 30 апреля 2009

Как мне разобрать поплавок, отсканированный с листа, как текст, содержащий запятые?

txt = "1,903.44"
value = float(txt) # This fails due to ',' in string

ОБНОВЛЕНИЕ: Извините, я не ясно. Я использую Jython 2.5, который не имеет модуля локали.

Ответы [ 4 ]

3 голосов
/ 30 апреля 2009

Использовать locale.atof() после locale.setlocale(locale.LC_ALL, '').

3 голосов
/ 30 апреля 2009

Вы можете лишить запятых:

txt = txt.replace(',', '')
value = float(txt)
3 голосов
/ 30 апреля 2009
txt = "1,903.44"
value = float(txt.replace(',', ''))

Если вам нужна локализация, это не сработает, но сработает, если вы знаете, что запятые - это разделители.

0 голосов
/ 30 апреля 2009

Я бы лично использовал десятичный пакет при работе с денежными значениями, чтобы избежать хорошо документированных ошибок , возникающих при использовании чисел с плавающей запятой.

from decimal import Decimal
txt = txt.replace (',', '')
value = Decimal(txt)

Как отмечалось другими авторами, это работает только в том случае, если известно, что ваша локаль использует «,» в качестве разделителя тысяч, но должна заставить вас двигаться в правильном направлении.

...