如何将python将float('inf')转换为str?

2024-06-17 07:59:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我的应用程序正在处理数字,其中有Python。 问题是,我希望将这样的数字转换为全字:"Infinity"

for x in [float('inf'), float(5.0)]:
    print(x)

结果如下:

inf
5.0

我希望是:

Infinity
5.0

我可以设置无限在字符串中的表示方式吗

当然,我可以用下面的方法:

def cast_num(num):
    if num == float('inf')
        return 'Infinity'
    else:
        return str(num)

但这种方法成本高昂——它必须处理每个数字

还有更好的选择吗

python中是否有我可以设置的标志?(如“setlocale”)


Tags: 方法字符串in应用程序forreturndef方式
2条回答

另一种方法是使用简单的字典:

values = {float('inf'):'Infinity'}
i = float('inf')
p = 0.5
print(values.get(i, str(i)))
print(values.get(p, str(p)))

输出

Infinity
0.5

使用numpy,这可能是一个很好的解决方案:

import numpy as np

x = np.array([2.0, float('inf'), 5.0], dtype='<U8')

x[x=='inf'] = 'Infinity'
x

相关问题 更多 >