LINQ查询-从同一语句中的总和字段计算百分比
从下面的查询中,我很难得到失败百分比,因为它总是为零。我做错什么了吗LINQ查询-从同一语句中的总和字段计算百分比,linq,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
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
}
您正在进行整数除法,而不是浮点除法:因此,如果失败<成功,则将失败除以成功将始终为零。先乘以100失败,然后除以成功
i、 e.FailurePercentage=100*h.Sumn=>n.Failed/h.Sumn=>n.Success尝试将计算的操作数强制转换为浮点类型:
FailurePercentage = ((double)h.Sum(n => n.Failed) / (double)h.Sum(n => n.Success)) * 100.0
虽然从技术上讲,第一个已经足够了,但是h.Sumn=>n.Failed是零,或者与h.Sumn=>n.Success相比非常小。但是代码没有任何问题。