python-Leibnitz中pi的计算

2024-10-01 00:20:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我开始了我的冒险与Python。我的当前程序非常简单,它必须使用Leibnitz公式计算pi,当“a”varibale的模块小于x时停止工作。到目前为止,它看起来如下:

from math import fabs
from math import pi

x=float(input('Enter accuracy of calculating:'))
sum=0
a=0
n=0

while True:
    a=float(((-1)**n)/(2*n+1))
    sum+=a
    n+=1
    result=sum*4

    if fabs(a)<x:
        break

print('Calculated pi:',result)
print('Imported pi:', pi)

看起来不错,但问题是: 在我的版本中,它工作的很好,但在我朋友的Geanie上,它计算0.0。 此外,在Ideone.com(不输入键盘,仅x=0.0001)它也返回0.0。

有人知道问题在哪里吗?


Tags: 模块fromimport程序pimathresultfloat
1条回答
网友
1楼 · 发布于 2024-10-01 00:20:27

试试这个

a=((-1)**n)/float(2*n+1)

而不是这个

^{pr2}$

原因:我不认为将a本身设置为float是有意义的,但是在产生{}的除法中设置除数或被除数将确保Python不会截断余数(这是python3.0之前整数除法的默认设置)。在

附带问题:您的样式与official Python style guidelines不匹配,因此您可能需要更改它。在

相关问题 更多 >