c++ - 需要对表达式进行解释

标签 c++ c

我无法理解这个表达:

表达式为:

if( !(a<00.0 || a>0.0))
 a=b;

其中ab都是float变量。

有人可以向我解释一下吗?
我将非常感谢您的帮助。

谢谢!

编辑--------------------第一次进行附加-----

这确实是我读到的原始代码中的00.0

现在我为其添加一些内容。 a 是一个 float 组,ba 的初始值。

首先用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/

相关文章:

c - "segmentation error (core dumped)"使用函数和指针

C++ ReadDirectoryChangesW 和 Boost 将目录更改作为文件(旧名称)返回

c++ - 从 Xcode C++ 控制台应用程序生成 Windows 兼容二进制文件

c - AUTH 状态期间的 POP 客户端问题

CS50 马里奥(更舒适)错误。为什么我的金字塔没有正确对齐?

c - 为什么编译器在使用结构变量时显示 "Type specifier missing"

c - strlen 的替代方案不在 0 处中断

c++ - 观察给定的精度,快速将 double 转换为字符串

c++ - cin 获取输入失败

c++ - Visual Studio C++ 2010 如何将图标添加到控制台应用程序