将 float、base 转换为 float 的函数

Function converting a float, base to float

正在尝试创建函数来根据浮点数和基数计算浮点数。我们该怎么做?

这是我所做的

def frac(s, base):
    import math
    exp = range(math.log(s, base), -1, -1)
    for e in exp:
        d = (s // (base ** e))
        s -= d * (base ** e)
        yield d 

尝试定位类似

的内容
(100.101, base=2) = 4.625

我认为最简单的方法是对不带小数点的字符串使用内置整数功能,然后除以提高到小数位数的基数。

def frac (s, base):
    dotPos=s.find('.')
    if (dotPos == -1):
        return (int(s, base))
    places = len(s)-dotPos-1
    return (1.0*int(s[:dotPos]+s[dotPos+1:],base)/(base**places))
print frac("100.1",2)