gpt4 book ai didi

Python-将带分数转换为 float

转载 作者:太空宇宙 更新时间:2023-11-03 12:35:11 25 4
gpt4 key购买 nike

我想制作一个将混合数字和分数(作为字符串)转换为 float 的函数。下面是一些示例:

'1 1/2' -> 1.5
'11/2' -> 5.5
'7/8' -> 0.875
'3' -> 3
'7.7' -> 7.7

我目前正在使用此功能,但我认为它可以改进。它也不处理已经以十进制表示的数字

def mixedtofloat(txt):

mixednum = re.compile("(\\d+) (\\d+)\\/(\\d+)",re.IGNORECASE|re.DOTALL)
fraction = re.compile("(\\d+)\\/(\\d+)",re.IGNORECASE|re.DOTALL)
integer = re.compile("(\\d+)",re.IGNORECASE|re.DOTALL)

m = mixednum.search(txt)
n = fraction.search(txt)
o = integer.search(txt)

if m:
return float(m.group(1))+(float(m.group(2))/float(m.group(3)))
elif n:
return float(n.group(1))/float(n.group(2))
elif o:
return float(o.group(1))
else:
return txt

谢谢!

最佳答案

2.6 有 fractions模块。只需在空格处拆分字符串,将 block 提供给 fractions.Fraction(),针对结果调用 float(),然后将它们全部相加。

关于Python-将带分数转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2878727/

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