Python 尝试将浮点转换为十进制
这是公式, 3.14=3*10^0+1*10^-1+4*10^-2=3.14 但是我使用的是下面的python脚本,它一直在计算3.55的结果,有人能帮我吗Python 尝试将浮点转换为十进制,python,python-3.x,Python,Python 3.x,这是公式, 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+=
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))
你的最后两个循环,在同一件事情上循环两次,也就是说,你做了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))
但是你有内置的函数来为你做所有这些,问题是你不想把m的值转换成float;相反,您尝试使用拆分方法,但在这里没有合理的用途, 取而代之的是,尝试将m转换为float,然后使用公式和for循环 万一你不知道怎么投 m=浮动'3.14'
标题是从浮点到小数,但您的示例显示的是从字符串到浮点…您实际上想要实现什么?非常感谢!我可以问一下我可以使用哪些内置函数吗?正如上面所建议的,只使用float3.14,但我发现有趣的是,您还可以查看代码中的错误