在 Python 上编写计算器
Coding a Calculator on Python
所以我正在尝试编写一个以 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)
。
知道我做错了什么吗?谢谢!
你是 运行 while
循环直到 a
和 x
变得相等,而你实际上正在寻找等于 [=15= 的中间值].你应该这样写循环:
while float(CR5((a+x)/2.0))!= x:
和
while float(CR5((b+x)/2.0))!= x:
x=4
的结果:
(3.9999, 4.0001)
所以我正在尝试编写一个以 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)
。
知道我做错了什么吗?谢谢!
你是 运行 while
循环直到 a
和 x
变得相等,而你实际上正在寻找等于 [=15= 的中间值].你应该这样写循环:
while float(CR5((a+x)/2.0))!= x:
和
while float(CR5((b+x)/2.0))!= x:
x=4
的结果:
(3.9999, 4.0001)