【发布时间】:2016-02-09 06:26:03
【问题描述】:
目前我很茫然,我有一个程序可以很好地处理大多数参数,但是对于某些参数,它会引发 NaN 异常。问题似乎在于计算略大于 1 的值。我有一个类似于 f(x,t) 的函数,对于较大的 x 值,f 随 t 快速增加并且没有问题,但是对于较小的值xf 随 t 增加非常缓慢。对于较小的 x 值,它根本不起作用(表示离散时间步长的数组):
1.0
1.0
1.0
NaN
我不明白 NaN 是如何返回的,这些值显然不会趋向于无穷大,并且略大于 1。是否存在一些可能引发此异常的数据类型问题?
对于较大的 x 值,行为可能是这样的:
1.0
1.000000000000074
1.000000000000486
1.000000000000888
等等,完全没有问题。
【问题讨论】:
-
我们必须查看您的代码才能发表评论...
-
如果没有看到实际代码,我们无话可说。顺便说一句:数据类型本身没有问题。唯一可能出错的是您使用它们的方式。
-
请分享您的代码。
-
更准确地说,请分享minimal, complete, and verifiable example。不要共享所有代码。没有人愿意通过 60 行代码来找出问题所在。
-
对不起,我在过去的三个小时里都在研究这个程序(超过 300 行,所以我认为在这里发布它不公平)。我最终找到了一个 0/0,我只是想知道除了除以零(或通常在数学上未定义的东西)之外是否还有其他任何东西会导致这种情况。无论如何,如果有,我的代码不是一个例子。