سؤال

وكيف يمكنني تحليل تعويم الممسوحة ضوئيا من ورقة كنص، التي تحتوي على فواصل؟

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

وUPDATE: آسف لأنني لم أكن واضحا. أنا باستخدام جايثون 2.5، التي لا تملك وحدة اللغة.

هل كانت مفيدة؟

المحلول

txt = "1,903.44"
value = float(txt.replace(',', ''))

إذا كنت تحتاج إلى الترجمة، وهذا لن يعمل حقا ولكن لا حيلة إذا كنت تعرف أن الفواصل هي الفواصل الخاصة بك.

نصائح أخرى

locale.atof() بعد locale.setlocale(locale.LC_ALL, '').

هل يمكن تجريد الفواصل:

txt = txt.replace(',', '')
value = float(txt)

وأنا شخصيا استخدام حزمة العشرية عند التعامل مع القيم النقدية لتجنب <لأ href = "https://stackoverflow.com/questions/723356/when-is-it-appropriate-to-use-floating-precision- ، أنواع البيانات "> المزالق موثقة جيدا التي تحدث عند استخدام نقطة عائمة.

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

وكما لاحظ ملصقات أخرى، وهذا يعمل فقط إذا كان يعرف لغة لاستخدام '،' كما آلاف فاصل، ولكن يجب أن تحصل على الذهاب في الاتجاه الصحيح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top