python中的斐波纳契给出了舍入误差

时间:2016-11-02 14:37:38

标签: python python-3.x numeric fibonacci

所以我正在尝试学习python并编写了一个小程序来给我斐波那契数字。虽然我知道它们可以递归地定义。我想使用已知的数学公式来提高效率。我的代码非常简单:

from math import sqrt
def F(n):
return ((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5))
zahl = int(input("Welche Fibonacci Zahl möchten Sie: "))
print(F(zahl))

当我执行它时,它会给我奇怪的舍入错误,例如输入6我得到

8.000000000000002

而不是预期的8.0。有谁知道这个舍入误差来自何处以及如何避免它。我希望数学库中的标准sqrt函数工作得足够精确!如果有帮助,我使用的是Python 3.5(32bbit)。

0 个答案:

没有答案