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是否支持更精确的浮点,还是必须使用一些外部库?
Python的float类型映射到您的平台的C编译器调用的任何内容double(请参阅http://en.wikipedia.org/wiki/IEEE_floating_point_number).
Python标准库还附带一个任意精度的十进制模块,名为decimal:http://docs.python.org/2/library/decimal.html