我创建了一个简单的函数来将e求解幂pi [here] >>
def e_to_power_pi(number):
return (1 + (1/number)) ** (number * math.pi)
从它的外观看,显然是简单的代码。但是看看这两个值的输出差异:
示例一:
e_to_power_pi(1000000000000000)
输出:
32.71613881872869
示例二:
e_to_power_pi(10000000000000000)
输出:
。1.0
删除代码后,我了解到1.0来自此部分上面代码的1 +(1 /数字)
[当我进一步撕下它时,我了解到1/10000000000000000
会像0.00000000000000001
一样输出正确的答案。
但是当我将1
添加到结果中时,它返回1.0
而不是1.00000000000000001
。
我想它必须是默认值,在python中可能会改变值。
我决定使用round(<float>, 64) # where <float> is any computation taking place in code above
尝试获取十进制结果后的64位数字。但是,当执行加法运算1.0
时,我仍然停留在相同的结果上。
有人可以引导我或将我指向可以学习或进一步了解它的方向吗?
我创建了一个简单的函数来将e求解幂pi,在这里解释了def e_to_power_pi(number):从外观上看,return(1 +(1 / number))**(number * math.pi),显然很简单代码。 ...
您正在使用具有53位有效精度的双精度二进制浮点格式,不足以表示分数:
10000000000000001/10000000000000000 = 1.0000000000000001