是否有一个Python模块,我可以轻松地将混合分数转换为浮点数?

时间:2011-09-11 04:45:03

标签: python python-3.x

我只是想知道我是否可以轻松地将混合数字(作为数字或字符串输入)转换为浮点数或整数。我看过了分数模块,但似乎它不能做我想要的,或者我读得不好。

在编写自己的函数之前,只想知道某些事情是否已存在。这是我正在寻找的,顺便说一下:

convert(1 1/2)

convert('1 1/2')

感谢。

2 个答案:

答案 0 :(得分:9)

内置的Fraction类似乎不像你所拥有的那样支持混合分数,但在空间上分割它们并不太难。例如,1 + fractions.Fraction('1/2')或非常简单的

def convert(f):
    whole, frac = f.split()
    return int(whole) + fractions.Fraction(frac)

答案 1 :(得分:0)

我编写了Mixed类来扩展分数来做到这一点。来源是here

>>> float(Mixed('6 7/8'))
6.875
>>> float(Mixed(1,1,2)) # 1 1/2
1.5