提高Python中的浮点精度

hkk*_*hkk 6 python floating-point floating-point-precision

我正在研究一个用以下代码计算pi的Leibniz近似的项目:

def pi(precision):
    sign = True
    ret = 0
    for i in range(1,precision+1):
        odd = 2 * i - 1
        if sign:
            ret += 1.0 / odd
        else:
            ret -= 1.0 / odd
        sign = not sign
    return ret
Run Code Online (Sandbox Code Playgroud)

但是,输出值始终为12位数.如何提高计算的精度(例如更多位数)?Python是否支持更精确的浮点,还是必须使用一些外部库?

alb*_*hin 7

尝试使用Decimal.

阅读任意精度初等数学函数 (Python)原版以获取更多信息


Max*_*oel 5

Python的float类型映射到您的平台的C编译器调用的任何内容double(请参阅http://en.wikipedia.org/wiki/IEEE_floating_point_number).

Python标准库还附带一个任意精度的十进制模块,名为decimal:http://docs.python.org/2/library/decimal.html