鱼C论坛

 找回密码
 立即注册
查看: 109|回复: 1

[已解决]圆周率问题

[复制链接]
发表于 3 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. pi = 0
  2. n = 1000
  3. for k in range(n):
  4.     pi += 1/pow(16,k) * (4 / (8*k +1) - 2 / (8*k + 4) - 1 / (8*k + 5) - 1/(8*k + 6))
  5. print("圆周率值是:{:.60f}".format(pi))
复制代码
我用这个计算圆周率  为啥python只能计算到小数点后48位?
最佳答案
3 天前
您好!您遇到的问题是因为 Python 中的浮点数精度有限。浮点数使用 IEEE 754 双精度格式,只能精确表示大约 15 到 17 位十进制数字。当您尝试打印更多位(如 60 位)时,超出精度的部分会显示为不准确的“垃圾”值。

在您的代码中,pi 是一个浮点数,所以即使公式(如 BBP 公式)理论上可以计算更多位,但浮点运算会限制实际精度。

如果您需要更高精度的圆周率计算,建议使用 Python 的 decimal 模块或其他高精度库。例如:


  1. from decimal import Decimal, getcontext

  2. # 设置精度(例如 100 位)
  3. getcontext().prec = 100

  4. pi = Decimal(0)
  5. n = 1000
  6. for k in range(n):
  7.     term = Decimal(1) / Decimal(16)**k * (
  8.         Decimal(4) / (Decimal(8)*k + 1) -
  9.         Decimal(2) / (Decimal(8)*k + 4) -
  10.         Decimal(1) / (Decimal(8)*k + 5) -
  11.         Decimal(1) / (Decimal(8)*k + 6)
  12.     )
  13.     pi += term

  14. print("圆周率值是:{:.60f}".format(pi))
复制代码


这样,您就可以获得更精确的结果。但请注意,即使使用高精度库,计算速度和资源消耗也会增加。

希望这能帮到您!如果还有其他问题,请随时问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 3 天前 | 显示全部楼层    本楼为最佳答案   
您好!您遇到的问题是因为 Python 中的浮点数精度有限。浮点数使用 IEEE 754 双精度格式,只能精确表示大约 15 到 17 位十进制数字。当您尝试打印更多位(如 60 位)时,超出精度的部分会显示为不准确的“垃圾”值。

在您的代码中,pi 是一个浮点数,所以即使公式(如 BBP 公式)理论上可以计算更多位,但浮点运算会限制实际精度。

如果您需要更高精度的圆周率计算,建议使用 Python 的 decimal 模块或其他高精度库。例如:


  1. from decimal import Decimal, getcontext

  2. # 设置精度(例如 100 位)
  3. getcontext().prec = 100

  4. pi = Decimal(0)
  5. n = 1000
  6. for k in range(n):
  7.     term = Decimal(1) / Decimal(16)**k * (
  8.         Decimal(4) / (Decimal(8)*k + 1) -
  9.         Decimal(2) / (Decimal(8)*k + 4) -
  10.         Decimal(1) / (Decimal(8)*k + 5) -
  11.         Decimal(1) / (Decimal(8)*k + 6)
  12.     )
  13.     pi += term

  14. print("圆周率值是:{:.60f}".format(pi))
复制代码


这样,您就可以获得更精确的结果。但请注意,即使使用高精度库,计算速度和资源消耗也会增加。

希望这能帮到您!如果还有其他问题,请随时问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-2 04:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表