运算符'<'不能应用于'bool'和'double'类型的操作数

运算符'<'不能应用于'bool'和'double'类型的操作数

问题描述:

哇......我从未见过这个。任何方式来解决它?运算符'<'不能应用于'bool'和'double'类型的操作数

foreach(double r in portfolioReturns) 
     { 
      if (-8.0 < r < -7.0) 
      { 
       n8++; 
      }} 
+0

奖金搭载的问题:哪些语言其实也允许这样做? – anthony 2010-08-25 02:20:52

+0

@anthony:Python的确如此。 – 2010-08-25 02:21:32

+1

我真诚地希望你不要像生产代码那样格式化你的大括号。 – siride 2010-08-25 02:22:53

你有效地做这个

if ((-8.0 < r) < -7.0) 

由于(-8.0 < R)计算结果为布尔,你不能把它比作一个浮动。做到这一点,而不是:

if (-8.0 < r && r < -7.0) { 
    //code here 
} 

if (-8.0 < r && r < -7.0) 

foreach(double r in portfolioReturns) 
{ 
    if(-8.0 < r && r < -7.0) 
      n8++; 
} 

让我猜猜,你是从蟒蛇来了吗?这是我知道的唯一的语言工作:-)

看在(-8.0 < r < -7.0),第一,-8.0 < r得到评估,这是真的。真-7.0 barfs。

你也可以使用LINQ,除了修复每个人如此迅速地提供

n8 += portfolioReturns.Count(r => -8.0 < r && r < -7.0);