我现在处于亏损状态,我有一个适用于大多数参数的程序,但是对于某些参数,它会抛出一个NaN异常。问题似乎在于计算略大于1的值。我有一个类似于f(x,t)的函数,对于x的大值,f随t快速增加并且没有问题,但对于小值xf的增加非常缓慢。对于较小的x值,它根本不起作用(表示离散时间步长的数组):
1.0
1.0
1.0
NaN
我不明白NaN是如何返回显然不会趋于无穷大的值,并且稍微大于1.是否存在可能引发此异常的某些数据类型问题?
对于较大的x值,行为可能是这样的:
1.0
1.000000000000074
1.000000000000486
1.000000000000888
依此类推,完全没有问题。
答案 0 :(得分:1)
PEP 754具体表明PositiveInfinty / PositiveInfinity将返回NaN。 (并谈到使用PosInf = 1e300000作为PositiveInfinity的值,但也指出这不是便携式或非丑陋的)
The wiki page for IEEE 754 NaN's表示以下其他示例:
pow
函数和整数指数pown
函数将0 ^0,1∞和∞0定义为1.(注意0 ** 0我希望使用或者至少类似于python在Python 2.7中返回1)powr
函数将所有三个不确定形式定义为无效操作,因此返回NaN。