2011-06-23 25 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 

(雖然在技術上鑄造的第一個就夠了)