试着把浮点数转换成分米

2024-04-26 13:04:10 发布

您现在位置:Python中文网/ 问答频道 /正文

这是公式, 3.14=3*10^0+1*10^-1+4*10^-2=3.14

但是我使用的是下面的python脚本,它一直计算3.55的结果,有人能帮我吗?你知道吗

n=0
m='3.14'.split('.')
for i in m:
    if i == m[0]:
        f= (int(i,base=10))
    else:
        for x in i:
            for v in range(len(i)):
                    n+=10**(-v-1)*int(x)
print (float(f+n))

Tags: in脚本forbaselenifrangefloat
2条回答

好吧,问题是你不想把m的值转换成float,相反,你想用split方法,这里没有合理的用法, 相反,尝试将m转换为float,然后使用公式和for循环

in case you don't know how to cast m = float('3.14')

你的最后两个循环,在同一件事上循环两次,也就是说,你做1*10^-1+4*10^-1+1*10^-2+4*10^-2,得到.55。你知道吗

你应该写:

n=0
m='3.14'.split('.')
for i in m:
    if i == m[0]:
        f= (int(i,base=10))
    else:
        v=0
        for x in i:
          n+=10**(-v-1)*int(x)
          v=v+1
print (float(f+n))

但是你有内置的函数来为你做这些

相关问题 更多 >