给出π的小数点后的第1000000位到第1000100位数字,并计算这些数字的和

代码运行的时候截取的小数位数截取不到所需要的部分,怎么才能取到小数点后1000000位

import math
p = math.pi
print(p)
p_0 = str(p).split('.')[0]
p_1 = str(p).split('.')[1]
p_point = p_1[0:100] 
p_new = p_0 + '.' + p_point
p_new_number= float(p_new)

print(p_new_number)

普通的PI无法获取高精度,普通pi只能精确到15位,需要通过sympy模块来获取高精度PI,但是比较耗时,我这里获取小数点后1000100位数字大约耗时3分钟。
先贴代码,然后是sympy模块的安装过程。
一、代码:

from sympy import *
p_1=N(pi,1000101) # 精度到小数点后1000100位,N()的第二个参数是PI中的数字长度,包含了小数点前的3
# print(p_1)
strNmb=str(p_1).split('.')
bh = strNmb[1][1000000-1:1000100-1] # 获取第1000000到第1000100位之间的字符串
# print(bh) # 打印
s = 0 # 累加求和
for v in bh:
    s = s + int(v) # 累加求和

print(s) # 输出结果

二、安装sympy模块
以pycharm安装sympy为例:
(1)点击File >> Settings,打开Settings面板
(2)搜索Project ,找到Python Interpreter,点击右侧的+号,在输入框中输入sympy,在列表中找到sympy,点击列表下方的Install package,等待安装完毕即可。如图:

img

img

sympy的安装和使用可参考下面的链接:

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

p从哪里来的,里面是什么内容,为什么要按照小数点分割。