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位有效数字了