我如何明确告诉 python 使用小数点或逗号作为小数分隔符来读取小数?我不知道将运行我的脚本的 PC 的本地化设置,这应该不会影响我的应用程序,我只想说:
f = read_float_with_point("3.14")
或
f = read_float_with_comma("3,14")
我认为写作
def read_float_with_comma(num):
return float(num.replace(",", ".")
不安全,因为我不知道区域设置!
最佳答案
because I don't know the locale settings
您可以使用 locale
module 查找它:
>>> locale.nl_langinfo(locale.RADIXCHAR)
'.'
或
>>> locale.localeconv()['decimal_point']
'.'
使用它,您的代码可以变成:
import locale
_locale_radix = locale.localeconv()['decimal_point']
def read_float_with_comma(num):
if _locale_radix != '.':
num = num.replace(_locale_radix, ".")
return float(num)
更好的是,同一个模块为您提供了一个转换函数,称为atof()
。 :
import locale
def read_float_with_comma(num):
return locale.atof(num)
关于python - 使用逗号或点作为分隔符将 Python 字符串显式转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13362121/