double test = 0.0;
.... some code
char qwe = ...
.. some code
test += qwe;
if (test >= 200 || test <= 300) {
test = 7.0;
}
// For some reason, test seems to equal 0?
Run Code Online (Sandbox Code Playgroud)
为什么(test >= 200 || test <= 300)== false?
这是非常奇怪的行为.
当我打印输出时,它是0?
尽管您的程序中存在任何未定义的行为,(test >= 200 || test <= 300) == false但是且仅当,test是NaN.您可以NaN通过某些数字错误获得(不是数字),例如0.0 / 0.0通过sqrt使用负输入调用.
使用std::isnan(test)检查确认.