-1

我有if如下声明

if (1 <= value <= 20)
{

}

value是一个double

但是我收到一条错误消息,提示“运算符'<='不能应用于'bool'和'double'类型的操作数”

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

4

4 回答 4

4

C# 不允许您这样做。

这样做:

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

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

于 2013-12-21T18:57:58.223 回答
4

你:

if (1 <= value <= 20)
{

}

这被解释为

(1 <= value) <= 20

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

于 2013-12-21T19:05:42.063 回答
1

问题:如果不合并它们,您将无法检查两个表达式。

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

您可以使用逻辑与&&运算符来检查这个

尝试这个:

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

}
于 2013-12-21T18:58:11.603 回答
1

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

因此,它的评估结果是(true <= 20) or (false <=20)并且错误状态清楚地表明您不能使用运算符<=来比较 bool 和 double。

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

if (1 <= value && value <= 20)
{
}
于 2013-12-21T18:58:23.143 回答