将语言环境数字字符串格式化回数字
deformat locale number string back to number
我可以通过
创建区域数字字符串
import locale
locale.setlocale(locale.LC_ALL, 'de_DE.utf8')
numberstring = '{0:n}'.format(number)
(我在 this Whosebug answer 上找到了这个。)
现在,我收到了用户的意见。我不知道它是否是有效的语言环境数字字符串。如果是,我想将其转换为数字。如果不是,我想发个错误让他重试
什么是最佳实践解决方案,即使用 locale
库中的功能的解决方案? (我想这确实存在?)
locale.delocalize
不能解决您的问题吗?例如:
import locale
locale.setlocale(locale.LC_ALL, 'de_DE.utf8')
numberstring = '{0:n}'.format(1700.5) # "1 700,5"
normalized = locale.delocalize(numberstring) # "1700.5"
try:
number = float(normalized) # 1700.5
except ValueError:
# Not a number
我可以通过
创建区域数字字符串import locale
locale.setlocale(locale.LC_ALL, 'de_DE.utf8')
numberstring = '{0:n}'.format(number)
(我在 this Whosebug answer 上找到了这个。)
现在,我收到了用户的意见。我不知道它是否是有效的语言环境数字字符串。如果是,我想将其转换为数字。如果不是,我想发个错误让他重试
什么是最佳实践解决方案,即使用 locale
库中的功能的解决方案? (我想这确实存在?)
locale.delocalize
不能解决您的问题吗?例如:
import locale
locale.setlocale(locale.LC_ALL, 'de_DE.utf8')
numberstring = '{0:n}'.format(1700.5) # "1 700,5"
normalized = locale.delocalize(numberstring) # "1700.5"
try:
number = float(normalized) # 1700.5
except ValueError:
# Not a number