gpt4 book ai didi

python - 使用逗号或点作为分隔符将 Python 字符串显式转换为 float

转载 作者:太空狗 更新时间:2023-10-29 18:18:47 24 4
gpt4 key购买 nike

我如何明确告诉 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com