试图将浮点数转换为小数

时间:2019-09-15 22:07:48

标签: python python-3.x

这是公式, 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;
}

2 个答案:

答案 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')