我在为程序显示高度时遇到了一些麻烦。这就是我写的:
if (0 < LaserX < 161) {
LaserX = LaserX/n;
LaserY = LaserY/n;
sprintf(LaserMID, "%.1f, %.1f", LaserX, LaserY);
ShowCo->Text = LaserMID;
}
else { ShowCo->Text = 0; }
所以基本上它会显示当我的LaserX在0到161之间时的高度值,并且在它之外的任何东西它显示0.但在我的情况下,当LaserX值超出范围时,它显示-NAN而不是。什么是-NAN?!我怎么摆脱它? 请建议,thnx。
答案 0 :(得分:3)
以下情况不是您想要的,
if (0 < LaserX < 161) // evaluated from left thus always true (which is unwanted)
您可以将其更改为,
if (0 < LaserX && LaserX < 161)
这恰恰意味着LaserX
大于0
且小于161
。
答案 1 :(得分:3)
0 < LaserX < 161
错误,因为它与
相同(0 < LaserX) < 161
当(0 < LaserX)
变为1或0
你需要
0 < LaserX && LaserX < 161
P.S。:不要使用Turbo C ++ ......它已经死了,过时了,不应该使用
答案 2 :(得分:0)
更改上述答案中的条件。问题就会消失。