2024-04-26 12:28:16 发布
网友
如何显式地告诉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
您可以使用^{} 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)
更好的是,同一个模块有一个转换函数,名为^{}:
import locale def read_float_with_comma(num): return locale.atof(num)
您可以使用locale.atof
locale.atof
import locale locale.atof('12.3')
http://docs.python.org/2/library/locale.html
您可以使用babel以本地格式解析小数:
>>> parse_decimal('1,099.98', locale='en_US') Decimal('1099.98') >>> parse_decimal('1.099,98', locale='de') Decimal('1099.98')
您可以使用^{} module 查找:
或者
使用它,您的代码可以变成:
更好的是,同一个模块有一个转换函数,名为^{} :
您可以使用
locale.atof
http://docs.python.org/2/library/locale.html
您可以使用babel以本地格式解析小数:
相关问题 更多 >
编程相关推荐