Функция преобразования поплавка, базы в поплавок - PullRequest
0 голосов
/ 04 сентября 2018

Попытка создать функцию для вычисления поплавка, от поплавка и основания. Как мы можем это сделать?

Вот что я сделал

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

1 Ответ

0 голосов
/ 04 сентября 2018

Я думаю, что проще всего использовать встроенную целочисленную функциональность в строке без десятичной точки, а затем разделить на основание, поднятое до количества десятичных знаков.

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)
...