【问题标题】:Operator <= cannot be applied to double in if statement运算符 <= 不能应用于 if 语句中的 double
【发布时间】:2013-12-21 18:56:07
【问题描述】:

我有一个if 声明如下

if (1 <= value <= 20)
{

}

valuedouble

但是我收到一条错误消息,提示“运算符 '

有没有办法解决这个错误?

【问题讨论】:

  • if (1 &lt;= value &amp;&amp; value &lt;= 20) 阅读 c# 文档

标签: c# windows-phone-7 math windows-phone-8 windows-phone-7.8


【解决方案1】:

C# 不允许您这样做。

这样做:

if (1 <= value && value <= 20)

问题不是double,问题是你的语法不正确。

【讨论】:

    【解决方案2】:

    你:

    if (1 <= value <= 20)
    {
    
    }
    

    这被解释为

    (1 <= value) <= 20
    

    所以第一个 1 将与 value 进行比较,将确定前者是否“小于或等于”后者。这给出了一个布尔值。然后将该布尔值 True 或 False 与 &lt;=20 进行比较。但是你不能在 C# 中询问 True/False 是否小于或等于 20

    【讨论】:

      【解决方案3】:

      问题:你不能检查两个表达式而不合并它们。

      解决方案:我想你想检查value是否在1 and 20之间

      您可以使用逻辑 AND &amp;&amp; 运算符进行检查

      试试这个:

      if (value >= 1 && value <= 20)
      {
      
      }
      

      【讨论】:

        【解决方案4】:

        1 &lt;= value evaluates out to be bool如果值小于 1,则为 false,否则为 true)。

        因此,它的计算结果为 (true &lt;= 20) or (false &lt;=20),并且错误表明您不能使用运算符 &lt;= 来比较 bool 和 double。

        你需要和 (&&) 运算符进行比较:

        if (1 <= value && value <= 20)
        {
        }
        

        【讨论】:

        • 我真的需要吗?你的第一个答案是错误的。您从其他答案中学到了发布更好的答案。
        • @L.B - 我在发布后立即注意到代码中的一个问题。所以,我删除它以增加答案的价值,但我认为你不喜欢这个。没有问题。
        • 所以,我想你也会对其他帖子投反对票,因为它们或多或少指向相同。
        • 不,它们自发布以来都是正确的。另一方面,我会支持 Jeppe Stig Nielsen 的回答。
        • 我就是无法改变你的意识形态,伙计。做任何你认为正确的事。我知道我自己为什么要删除它。 Jeppe 在我回答后发布了它,因此根据您的意识形态,他可能复制了它。不是吗?祝你有美好的一天:)
        猜你喜欢
        • 1970-01-01
        • 2011-01-13
        • 1970-01-01
        • 2015-02-08
        • 2015-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多