Python问题求指点迷津

编写Python程序,完成十-二进制的小数转换。输入是一个十进制的小数,例如输入"123",代表小数0.123,输出是一个二进制的小数。假设精确度最高是8位。
求大佬帮忙!

回答:截图

img

import math

a = input("请输入一个数:")
L = len(a)
b = float(a)/math.pow(10,L)      

print(L)

print("0b0.",end="")
while b != 0:
    if b*2 >= 1:
        b = b*2-1
        print("1",end="")
    else:
        b = b*2
        print("0",end="")

好像存在着一些问题,有时候跑出来的结果很奇怪,但我找不到错在哪,一般的结果又都符合,你看看对不对