【发布时间】:2021-12-18 19:50:42
【问题描述】:
我正在尝试用 python 制作一个 Pi 计算器,但我需要更多的小数位。
如果有人编辑了我的代码并仔细解释了他们所做的事情,那将会很有帮助。
这是我正在使用的代码。
import math
d = 0
ans = 0
display = 0
while True:
display += 1
d += 1
ans += 1/d**2
if display == 1000000:
print(math.sqrt(ans*6))
display = 0
# displays value calculated every 1m iterations
大约 85m 次迭代后的输出:(3.14159264498239)
我需要超过 15 个小数位 (3.14159264498239........)
【问题讨论】:
-
与什么相比更多?你的实际要求是什么?此外,您通常会使用
while True来代替while loop == loop进行无限循环。 -
我在输出中需要更多小数位,因为我在计算一个看似无限多的值。
-
您不能期望 Stack Overflow 用户下载并运行您的代码(在一般情况下)。你应该清楚地表明你的实际和期望的结果是什么。
-
看看
decimal包 -
@JonSG 这只是问题的一部分。即使使用 python 的正常浮点精度,该系列的效率也极低。在 1200 万次迭代中,序列只能精确到 6 位,python 可以毫无问题地表示。
标签: python decimal floating-accuracy pi