gpt4 book ai didi

python - Cython 的计算不正确

转载 作者:太空狗 更新时间:2023-10-29 21:20:26 25 4
gpt4 key购买 nike

我实现了 Madhava–Leibniz 系列在 Python 中计算 pi,然后在 Cython 中提高速度。 Python 版本:

from __future__ import division
pi = 0
l = 1
x = True
while True:
if x:
pi += 4/l
else:
pi -= 4/l
x = not x
l += 2
print str(pi)

Cython 版本:

cdef float pi = 0.0
cdef float l = 1.0
cdef unsigned short x = True
while True:
if x:
pi += 4.0/l
else:
pi -= 4.0/l
x = not x
l += 2
print str(pi)

当我停止 Python 版本时,它已将 pi 正确计算为 3.141592。 Cython 版本最终以 3.141597 结束,还有一些我不记得的数字(我的终端崩溃了)但不正确。为什么 Cython 版本的计算不正确?

最佳答案

您在 Cython 版本中使用 float -- 那是 single precision !请改用 double,它对应于 Python 的 float(很有趣)。 C 类型 float 只有大约 8 位有效小数位,而 double 或 Python 的 float 大约有 16 位。

关于python - Cython 的计算不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4730898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com