3

我正在用点和点之间的向量进行一些计算,当点非常靠近时,我得到 nan 并不奇怪。我现在要做的是删除我存储在数组中的数组中的所有 nan 值以及良好的数据。我希望只使用一些这样的代码:

   if( angle[i] == nan ) { angle[i] = 0.0 };

至少这是我尝试过的,当我尝试时会出错。有谁知道如何摆脱 nan 值并用 0.0 替换它们?

4

2 回答 2

7

假设这是 C 然后使用isnan from <math.h>

#include <math.h>

if (isnan(angle[i]))
{
    angle[i] = 0.0;
}
于 2012-07-19T21:18:32.533 回答
5

据我记得,在每一种语言中,NaN 都会将所有内容都与 false 进行比较,包括它自己。您可以使用此行为将其清除:

if( angle[i] != angle[i] ) { angle[i] = 0.0 };

这看起来像 C、C++ 或 Java;在所有这些中,这个技巧应该有效。

于 2012-07-19T21:12:10.290 回答