在Python上编写计算器

时间:2015-02-26 16:25:43

标签: python python-3.x calculator intervals

所以我试图编写一个以5位数运算的计算器,然后检查它的间隔。这是代码:

def CR5(x):
  x=float('%s' % float('%.5g' % x))
  x="{:.4e}".format(x)
  return x

这似乎工作得很好,除了答案是字符串形式,但这不是现阶段的问题。但是,当我尝试检查间隔时,我得到了这个:

代码:

def interval(x):
   x=float(CR5(x))
   a=x-1
   b=x+1
   while float(CR5(a))!= x:
       a=float(CR5((a+x)/2))
   while float(CR5(b))!= x:
       b=float(CR5((b+x)/2))
   return a, b

结果如果x == 4:

(4.0, 4.0)

虽然我想获得(3.9999, 4.0001)

知道我做错了什么吗?谢谢!

1 个答案:

答案 0 :(得分:3)

您正在运行while循环,直到ax变得相等,而您实际上正在寻找中间值等于x。你应该像这样编写循环:

while float(CR5((a+x)/2.0))!= x:

while float(CR5((b+x)/2.0))!= x:

x=4的结果:

(3.9999, 4.0001)