我正在创建一份excel报告,用于计算跨越几个月的加权平均成本。这是100多个月,其中一些月份没有任何数量。如果月份没有数量,我将其设置为0以避免出现空异常错误。
生成报告时,对于没有数量的月份,我会得到除零例外。有没有办法在使用安全导航(。?)运算符的总和计算中检查值是否为0?
这是我尝试过的,无济于事:
如果数量为null,则将属性设置为0m:
WeightedQty = (x.Item2 / 100m) * x.Item1?.qty ?? 0m
进行求和计算,得到除以零误差:
WeightedCost = accrual_qtys.Sum(y => y.Quantity * key.wac) / accrual_qtys.Sum(y => y.WeightedQty == 0m ? y.WeightedQty : 1m)
答案 0 :(得分:1)
请试试这个
WeightedCost = accrual_qtys.Sum(y => y.Quantity * key.wac) / (accrual_qtys.Any(y => y.WeightedQty > 0m) ? accrual_qtys.Sum(y => y.WeightedQty) : 1m))