首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有本地输入的Python atof

带有本地输入的Python atof
EN

Stack Overflow用户
提问于 2016-02-19 23:26:15
回答 1查看 576关注 0票数 2

比方说,我有一个(德语)表达式,它读10.401,40 (in Mio EUR),我想用Python将它转换成一个真正的浮点数(在本例中大约为100亿)。

到目前为止,这就是我所拥有的:

代码语言:javascript
复制
import re, locale
from locale import *
locale.setlocale(locale.LC_ALL, 'de_DE') 

string = "10.401,40 (in Mio EUR)"
m = re.search(r'([\d.,]+)', string)
if m is not None:
    number = atof(m.group(1)) * 10**6

但是,它会引发一个ValueError (ValueError: invalid literal for float(): 10.401.40)。

为什么?难道.setlocale()指令不正是要处理这个问题吗?我是不是有一种奏鸣曲的方式(还没有!)不知道?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-20 02:56:38

我也有同样的ValueError。正如this similar question解释的那样,您需要在系统中安装德国地区。按照以上所述,我输入了sudo dpkg-reconfigure locales并选择了de-DE.UTF-8。我必须修改区域设置行以与locale.setlocale(locale.LC_ALL, 'de_DE.utf8')匹配,并让您的代码片段运行。祝好运!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35516947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档