悉野小楼

导航

python的decimal默认精度为28

python的decimal的精度可以修改的

计算pi

使用莱布尼茨级数计算圆周率

from decimal import Decimal, getcontext

# 设置全局精度为 100 位
getcontext().prec = 100

# 使用莱布尼茨级数计算圆周率
pi = Decimal(0)
for k in range(1000000):
    pi += (Decimal(-1) ** k) / (2 * k + 1)

pi *= 4
print(pi)  # 输出: 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679


在 Python 中,float 类型使用 IEEE 754 标准来表示浮点数.
64位, 8个字节
双精度浮点数的特点
符号位:1 位(表示正负)
指数位:11 位(表示指数)
尾数位:52 位(表示有效数字)
所有能存15-17位有效数字,
正常一位10进制数用4个位表示, 但4个位没用全, 所以不用能用52/4=13, 而应该使用52位, 能表示的最大值为2^52-1=4503599627370495, 这个数字是个16位, 但精度损失问题, 有时少一位, 有时多一位, 就变成15-17位有效数字了

posted on 2024-11-15 14:31  悉野  阅读(16)  评论(0编辑  收藏  举报