我可以通过创建一个区域设置数字字符串
import locale
locale.setlocale(locale.LC_ALL, 'de_DE.utf8')
numberstring = '{0:n}'.format(number)
(我在这个stackoverflow答案上找到了这个。)
现在,我收到了用户的输入。我不知道这是不是有效的语言环境数字字符串。如果是,我想将其转换为数字。如果不是,我想发送一个错误,然后让他重试。
什么是最佳实践解决方案,即使用locale
lib中的函数为此目的的解决方案?(我想这确实存在吗?)
不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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句