检查负数是否在一个范围内

时间:2018-05-11 11:24:57

标签: c# winforms if-statement negative-number

我有一个代码可以不断读取温度值,温度值总是负值。如何在C#中写入If条件以检查此温度是否在-44和-46范围内。

我尝试使用以下代码,但条件仍然传递

             if (!Enumerable.Range(-44, 1).Contains(cameraTemp)
              || !Enumerable.Range(-45, 1).Contains(cameraTemp)
              || !Enumerable.Range(-46, 1).Contains(cameraTemp))

我也尝试使用下面的代码,但是一些条件如何传递

             if (!(cameraTemp >= -44 && cameraTemp <= -46))

虽然我的温度值是-45,但条件仍然存在。

5 个答案:

答案 0 :(得分:3)

如果范围是-44到-46,您应该尝试以下。

 if (!(cameraTemp <= -44 && cameraTemp >= -46))

当我们落到0到-1这样的负数时。 0大于-1。同样的方式-1大于-2。所以它有点逆序。

如果你对此感到困惑,那么你必须将值转换为绝对值,然后应用条件。

详细说明。

以下条件

1. if (!(cameraTemp <= -44 && cameraTemp >= -46))
   {
        // Some print or logic
   }

If you write condition above way then your logic only execute if temperature value is not between -44 to -46 including -44 and -46. 

  2. if ((cameraTemp <= -44 && cameraTemp >= -46))
       {
            // Some print or logic
       }
    If you write this way then it only execute for value -44 , -45 and -46.

答案 1 :(得分:1)

或者,如果您想将范围-44输入-46,则应尝试关注:

if (cameraTemp >= -46 && cameraTemp <= -44)

答案 2 :(得分:0)

您已将操作员倒置以检查温度

if (!(cameraTemp <= -44 && cameraTemp >= -46))

-45低于-44且优于-46: - )

答案 3 :(得分:0)

你正在混合你的大粮食和更少的粮食。在你的第二次尝试中,你不能同时小于-46(例如那将是-47,-48等)并且大于-44(例如-43,-42等)

if (!(cameraTemp <= -44 && cameraTemp >= -46))

答案 4 :(得分:0)

-46小于-44所以你必须扭转你的状况。

if (!(cameraTemp <= -44 && cameraTemp >= -46))