Джитон:синтаксический анализ текста с плавающей запятой, содержащий запятые

StackOverflow https://stackoverflow.com/questions/807829

Вопрос

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

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)

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top