运算符< =不能应用于if语句中的double

时间:2013-12-21 18:56:07

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

我有if声明如下

if (1 <= value <= 20)
{

}

valuedouble

然而我收到一条错误,指出“运算符'&lt; ='不能应用于'bool'和'double'类型的操作数”

有没有解决此错误的方法?

4 个答案:

答案 0 :(得分:4)

C#不允许你这样做。

这样做:

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

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

答案 1 :(得分:4)

您:

if (1 <= value <= 20)
{

}

这被解释为

(1 <= value) <= 20

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

答案 2 :(得分:1)

问题:如果没有合并它们,就无法检查两个表达式。

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

您可以使用逻辑AND &&运算符来检查此

试试这个:

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

}

答案 3 :(得分:1)

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

因此它评估为(true <= 20) or (false <=20)并且错误明确指出您不能使用运算符<=来比较bool和double。

您需要和(&amp;&amp;)运算符进行比较:

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