List<decimal>scontiList = new List<decimal>();
scontiList.Add((decimal)50.0m);
scontiList.Add((decimal)50.0m);
scontiList.Add((decimal)50.0m);
scontiList.Add((decimal)50.0m);
scontiList.Add((decimal)50.0m);
scontiList.Add((decimal)50.0m);
scontiList.Add((decimal)50.0m);
scontiList.Add((decimal)50.0m);
scontiList.Add((decimal)50.0m);
scontiList.Add((decimal)50.0m);
scontiList.Add((decimal)50.0m);
scontiList.Add((decimal)50.0m);
scontiList.Add((decimal)50.0m);
decimal cento = (decimal)100.0d;
decimal ris = scontiList.Aggregate((decimal)0.0m, (a, b) =(decimal)((decimal)1 - ((decimal)a / (decimal)cento)) * (decimal)((decimal)1 - ((decimal)b / (decimal)cento)));
-> ris 0.4975125
为什么在这种情况下ris = 0,4975125? 正确的是0.125
答案 0 :(得分:0)
聚集从种子值开始,运行您指定的函数并将结果存储回累加器。然后继续前进,重复此循环
您的种子为0(第一次迭代中给定current_value的值)
您的操作是(1 - current_value/100) * (1 - next_value/100)
您的值全部为50,因此您的操作实际上是:curr = (1 - curr / 0.5) * 0.5
进度因此是:
Seed: (1 - 0/100) * 0.5 = 0.5
Step 1: (1 - 0.5/100) * 0.5 = 0.4975
Step 2: (1 - 0.4975/100) * 0.5 = 0.4975125
如您所见,它的价格稳定在0.4975。它永远不会达到0.125。该十进制数字将越来越长(更多数字),但始终约为0.4975