我无法理解这个表达:
表达式为:
if( !(a<00.0 || a>0.0))
a=b;
其中a
和b
都是float
变量。
有人可以向我解释一下吗?
我将非常感谢您的帮助。
谢谢!
编辑--------------------第一次进行附加-----
这确实是我读到的原始代码中的00.0
。
现在我为其添加一些内容。 a
是一个 float 组,b
是 a
的初始值。
首先用b
初始化a
,然后用其他函数计算a,最后检查a值
,如果a 值
与某些条件不匹配,让该值等于 b
。
float *a;
float b;
int N,i;
for(i=0;i<N;i++)
a[i]=b;//initialize
function(a,.....)
{
//calculate a[i];
}
for(i=0;i<N,i++)
if( a<0.0 ||
(a>1000.0 && a!=b) ||
!(a<00.0 || a>=0.0) )
a[i]=b;
最佳答案
乍一看,这似乎简化为
if (a == 0)
a = b;
但是,如果 a
是 NaN,则这种简化会产生不同的结果。任何与 NaN 的比较都是 false,因此如果 a
为零或 NaN,则更复杂的表达式会将 b
分配给 a
。
关于c++ - 需要对表达式进行解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43795418/