适当减少手机使用,有助于视力保护... 新的一年祝您:身体健康,阖家欢乐!~~

python 默认浮点精度16位

浏览量:1350 作者:admin 类别:: 学习笔记 更新时间:2022-03-09 20:51:19

昨天在计算圆周率时发现一个问题:

无论如何增大N的值,python 显示小数点后,总是只有16位。

因为

python 默认浮点精度16位


使用Decimal 模块中的getcontext来设置精度

getcontext().prec = 50

当然值得注意的是,把结果要使用 Decimal() 函数,要不然,输出精度依然不变

print('共耗时 {} 秒计算出,pi的值为:'.format(finish_time - start_time), Decimal(pi))

这里计算出来,到了小数点的后48位了。


网上看的可以设置更高精度,当我再增大精度时,不知道为何pycharm只显示到50位。


后来发现,decimal 默认精度好像是50 


在计算时,应该把,所有的数都要交给Decimal函数处理下。

pi = pi +Decimal( 1/pow(16,k))*(Decimal(4)/Decimal(8*k+1)-2/Decimal(8*k+4)-1/Decimal(8*k+5)-1/Decimal(8*k+6))

圆周率精确到小数点后99位的结果:

    3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117070


当前N值2000

关于博主
北京南城网络及弱电【张工】为您提供:
校园网、楼宇、村镇、园区,光纤网络覆盖,无线覆盖 华为|H3c|锐捷|爱快|panabit等品牌,路由、交换机、AC、AP 无源光网络(PON)设备,布署、调试、维运,等服务...
应急/临时光纤熔接...[藤仓22S]
博文为学习python所写:内容摘自网络、学习笔记、记事备忘。
QQ:872876353,欢迎交流学习、加Q注明来意。

诗文鉴赏

《满江红》· 岳飞
落星侵晓没,
残月半山低。
怒发冲冠,
凭栏处、潇潇雨歇。
抬望眼、仰天长啸,壮怀激烈。
三十功名尘与土,八千里路云和月。
莫等闲、白了少年头,
空悲切。
源于生活-记录日常
The site based on python 3 with flask...