这是公式, 3.14 = 3 * 10 ^ 0 + 1 * 10 ^ -1 + 4 * 10 ^ -2 = 3.14
但是我正在使用以下python脚本,它会一直计算3.55的结果,有人可以帮忙吗?
.intro {
min-height: 30vh;
max-height: auto;
position: absolute;
display: flex;
top: 10vh;
}
.intro .container {
background: red;
}
.container {
width: 100%;
}
.section-heading {
text-align: center;
margin: 4vh auto 0 auto;
font-weight: 500;
letter-spacing: 1px;
}
.content {
min-height: 30vh;
position: absolute;
display: flex;
top: 40vh;
}
.content .container {
background: #b3bfb8;
}
答案 0 :(得分:0)
您的最后两个循环,在同一件事上循环两次,即您执行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))
但是您有内置功能可以为您完成所有操作
答案 1 :(得分:0)
好吧,问题在于您不尝试将m的值强制转换为float;相反,您尝试使用的是split方法,此处没有明智的用法, 而是尝试将m强制转换为float,然后使用公式和for循环
如果您不知道该如何投射
m = float('3.14')