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

时间:2010-08-25 02:18:39

标签: c# .net asp.net

哇...我以前从未见过这个。有办法解决它吗?

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

5 个答案:

答案 0 :(得分:11)

你实际上是在做这个

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

由于(-8.0&lt; r)计算为布尔值,因此无法将其与浮点数进行比较。这样做:

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

答案 1 :(得分:5)

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

答案 2 :(得分:3)

让我猜,你来自python?这是我所知道的唯一有效的语言: - )

首先查看(-8.0 < r < -7.0),-8.0&lt; r得到评估,这是真的。真实&lt; -7.0 barfs。

答案 3 :(得分:3)

您还可以使用LINQ,以及如此快速提供的修复

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

答案 4 :(得分:1)

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