八进制(以8为基数)表示的小数可以用十进制精确地表示。例如,八进制的0.75表示为十进制的0.953125(7/8+5/64)。所有在小数点右边的n位八进制数可以用不超过在小数点右边的32位的十进制小数来表示。编写一个程序,将0~1之间(包含0和1)的八进制小数转换为等同的十进制小数。
输入
程序的输入将由一个八进制数组成。输入的八进制数的格式为0.d1d2d3...dk,其中di是八进制数字(0...7),对k没有限制。
输出
输出由一行组成,格式为0.d1d2d3...dk[8]=0.D1D2D3...Dm[10],其中,左氏是输入(八进制);由式是等同的十进制值,不能有0结尾,即Dm不等于0。
样例输入 复制
0.75
样例输出 复制
0.75 [8] = 0.953125 [10]
s=input()#输入
q=s
qq=""
length=len(s)#总长度
s=int(eval(s)*pow(10,length-2))#将小数变为整数
s=str(s)#转化为字符串
r=len(s)#变为整数之后的长度
shi=0#十位数
t=1#8的几次幂
for i in s:
if t<=length-2:
shi+=eval(i)/pow(8,length-2-r+t)
t+=1
else:
break
#目的是除去后面的0
sh="{:.24f}".format(shi)
#去除后面为0的即可
sh=str(sh)
il=0
for i in sh[::-1]:#倒序了:
if i=='0':
il+=1
else:
break
qq=q+"[8]"+"="+sh[:24-il+2]+"[10]"
print(qq)