【发布时间】:2019-11-21 09:11:39
【问题描述】:
我对 Python 中的浮点数太大有一个小问题。发生溢出错误。
函数如下所示:
N(t + 1) = (1 + c) N(t) - (c / d) * N(t)**2 其中 t 是时间,c 和 d 是常数。
我需要它来计算最多一分钟 (t = 60)。但是在 t= 8、9 或 10 之后,我得到了溢出错误。
def nValue(t):
n_calc = []
c = 2.3 # 0..3
d = 95 # 1..250
n_0 = 450 # 0..600
n_1 = (1 + c) * n_0 - c / d * n_0**2
n_calc.append(n_0)
n_calc.append(n_1)
for i in range(2, t+1):
n_curr = (1 + c) * n_calc[i- 1] - (c / d) * (n_calc[i- 1]**2)
n_calc.append(n_curr)
return n_calc
我应该使用 Decimal 类型、BigFloat 还是其他类型?
最后我要画图...(2D Matplotlib 图)。也许我应该以某种方式“缩放”这个等式?
【问题讨论】: