我很难理解这个表达式:
表达式是:
if( !(a<00.0 || a>0.0))
a=b;
其中a
和b
都是float
变量。
有没有人可以向我展示它?我会非常感谢你的帮助。
谢谢!
编辑--------------------第一次补充-------
我读到的原始代码中确实是00.0
。
现在我添加一些东西。 a
是一个浮点数组,b
是a
的初始值。
一开始,按a
初始化b
,然后使用其他函数计算a,最后检查a values
,如果a values
与某些函数不匹配条件,将值euqal设为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;
答案 0 :(得分:3)
乍一看,这似乎简化为
if (a == 0)
a = b;
但是,如果a
是NaN,则此简化会产生不同的结果。与NaN的任何比较都是错误的,因此如果b
为零或NaN,表达式更复杂的会将a
分配给a
。