我有if
声明如下
if (1 <= value <= 20)
{
}
value
是double
。
然而我收到一条错误,指出“运算符'&lt; ='不能应用于'bool'和'double'类型的操作数”
有没有解决此错误的方法?
答案 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)
{
}