2011-06-23 21 views
0

从下面的查询中我很难得到失败百分比,因为它始终为零。难道我做错了什么。LINQ查询 - 从同一语句中的总和字段中计算百分比

from n in calculateOrderStatus 
group n by new { n.OrderDate.Date, n.OrderDate.Hour } into h 
select new 
{ 
    Failed = h.Sum(n => n.Failed), 
    Success = h.Sum(n => n.Success), 
    FailurePercentage = (h.Sum(n => n.Failed)/h.Sum(n => n.Success)) * 100 
} 

回答

0

你做的整数除法,而不是浮点:所以除以成功失败总会给你零,如果失败<成功。乘以100失败首先,然后除以成功。

FailurePercentage = 100 * h.Sum(n => n.Failed)/h.Sum(n => n.Success)

+0

没有我仍然得到它0 – user811970

+0

然后'h.Sum(n => n.Failed)'为零,或者与h.Sum(n => n.Success)相比非常小。但是代码没有问题。 –

+0

这个工作。谢谢 – user811970

0

尝试铸造你的计算操作数为浮点类型:

FailurePercentage = ((double)h.Sum(n => n.Failed)/(double)h.Sum(n => n.Success)) * 100.0 

(虽然在技术上铸造的第一个就够了)