Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LINQ查询-从同一语句中的总和字段计算百分比_Linq - Fatal编程技术网

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相比非常小。但是代码没有任何问题。