在你开始嘲笑这样一个简单的问题之前,让我来解释一下:
我正试图确定账户在各种指标下的变化百分比。这并不是特别困难。但是,当当前值为零或上一个值为零时,通常如何处理这些情况?
例如:
本周:收益= $25.6
上周:收益= $0.0
我目前通过以下公式计算%差异:
如果上一周的收入为零-百分比差是什么?+无穷大? 相反,如果当前周为零呢?-无穷大?
然后,为了使事情变得更加复杂,您将如何在Linq-To-SQL查询中处理此问题?
我正试图确定账户在各种指标下的变化百分比。这并不是特别困难。但是,当当前值为零或上一个值为零时,通常如何处理这些情况?
例如:
本周:收益= $25.6
上周:收益= $0.0
我目前通过以下公式计算%差异:
If (CurrentValue > 0.0 && PreviousValue > 0.0) {
return (CurrentValue - PreviousValue) / PreviousValue;
} return 0.0;
如果上一周的收入为零-百分比差是什么?+无穷大? 相反,如果当前周为零呢?-无穷大?
然后,为了使事情变得更加复杂,您将如何在Linq-To-SQL查询中处理此问题?
Upside_Earnings = (statistics.Where(d => d.DateTime > first_startdate && d.DateTime <= first_enddate).Average(e => (double)e.Earnings) > zero &&
statistics.Where(d => d.DateTime > second_startdate && d.DateTime <= second_enddate).Average(e => (double)e.Earnings) > zero) ?
((statistics.Where(d => d.DateTime > first_startdate && d.DateTime <= first_enddate).Average(e => (double)e.Earnings) -
statistics.Where(d => d.DateTime > second_startdate && d.DateTime <= second_enddate).Average(e => (double)e.Earnings)) /
statistics.Where(d => d.DateTime > second_startdate && d.DateTime <= second_enddate).Average(e => (double)e.Earnings)) : zero,