显示奇怪的字符Turbo C ++

时间:2011-07-11 09:09:57

标签: c++

我在为程序显示高度时遇到了一些麻烦。这就是我写的:

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。

3 个答案:

答案 0 :(得分:3)

以下情况不是您想要的,

if (0 < LaserX < 161) // evaluated from left thus always true (which is unwanted)

您可以将其更改为,

if (0 < LaserX && LaserX < 161)

这恰恰意味着LaserX大于0且小于161

修改NaN = Not a Number

答案 1 :(得分:3)

0 < LaserX < 161

错误,因为它与

相同
(0 < LaserX) < 161

(0 < LaserX)变为1或0

时,总是如此

你需要

0 < LaserX && LaserX < 161

P.S。:不要使用Turbo C ++ ......它已经死了,过时了,不应该使用

答案 2 :(得分:0)

NAN - not a number.

更改上述答案中的条件。问题就会消失。