C#if语句.如果不是a或b

may*_*c19 -3 .net c# if-statement

我试图在列表中添加一个数字,但仅当数字不是255而不是0 id时才能避免嵌套if.我必须这样做的代码如下.

if (!(r == 255 || r == 0))
{
    rlist.Add(r);
    listBox2.Items.Add(Math.Floor(r).ToString());
}
Run Code Online (Sandbox Code Playgroud)

但是我仍然将255和0添加到列表框中,我无法弄清楚原因.谁能指出我做错了什么?在此先感谢您的帮助.

Ren*_*ogt 5

我看到的唯一解释是,这r不是一个int,而是一个double或类似的东西.

想象一下r = 255.3......

if (!(r == 255 || r == 0)) // is true, r is not 255 and not 0
Run Code Online (Sandbox Code Playgroud)

listBox2.Items.Add(Math.Floor(r).ToString());
Run Code Online (Sandbox Code Playgroud)

添加"255"Math.Floor(255.3)返回255.


忘了建议一个解决方案,TarkaDaal已经提供了解决方案.


Tar*_*aal 5

正如其他人所提到的,r是浮点数.试试这个:

var rFloor = Math.Floor(r);
if (!(rFloor  == 255 || rFloor  == 0))
{
    rlist.Add(r); // might want to use rFloor here too
    listBox2.Items.Add(rFloor.ToString());
}
Run Code Online (Sandbox Code Playgroud)