Python的高精度浮点数
2025-12-27 17:26:45
发布于:浙江
Python的整数上下限我就不多说了吧,你可以完美运行以下代码:
a=10**1000
b=-10**1000
print(a,b)
但Python浮点数的精度不足,不过可以运行以下代码:
import decimal
a=1/3
print(f"{a:.50f}")
decimal.getcontext().prec=100
b=decimal.Decimal(1)/decimal.Decimal(3)
print(f"{b:.50f}")
import math
c=math.sqrt(1.21)
print(f"{c:.50f}")#sqrt(1.21)=1.1,但实际输出不对
d=(decimal.Decimal(121)/decimal.Decimal(100)).sqrt()
print(f"{d:.50f}")
输出:
0.33333333333333331482961625624739099293947219848633
0.33333333333333333333333333333333333333333333333333
1.10000000000000008881784197001252323389053344726563
1.10000000000000000000000000000000000000000000000000
有了这个知识,就可以使用以下公式求:
代码:
from decimal import Decimal,getcontext
import winsound
getcontext().prec=100
def arctan(x):
n=Decimal(0)
for i in range(1000):
n=n+Decimal(-1)**i*(x**(Decimal(2)*i+Decimal(1)))/(Decimal(2)*i+Decimal(1))
return n
pi_div_4=4*arctan(Decimal(1)/Decimal(5))-arctan(Decimal(1)/Decimal(239))
pi=pi_div_4*Decimal(4)
print(f"{pi:.50f}")
还有:
还有二次方程公式
因此Python是非常强大的!
全部评论 2
我觉的你只学过python
17小时前 来自 浙江
0个蛋啊
19小时前 来自 浙江
0














有帮助,赞一个