試圖創建函數來計算浮點數,從浮點數和基數。我們該怎么做?這是我所做的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 回答

SMILET
TA貢獻1796條經驗 獲得超4個贊
我認為最簡單的方法是在沒有小數點的字符串上使用內置整數功能,然后除以提高到小數位數的基數。
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)
添加回答
舉報
0/150
提交
取消