有人可以帮我一些编码。我想算出这个分组的最终百分比是多少
100% of 4
0% of 1
100% of 12
100% of 2
所以答案将是
95% of 19
或类似的东西。
这可能吗?
谢谢
一般来说,计算“加权平均值”的公式x% of y
是:
sum(x/100 * y) / sum(y)
所以你的例子会产生
(1.0 * 4) + (0.0 * 1) + (1.0 * 12) + (1.0 * 2) / (4 + 1 + 12 + 2)
= 18 / 19 = ~94.7%
假设您有某种结构来保存您的百分比和属于这些百分比的项目数,以下代码将满足您的要求:
struct Data
{
double Percent;
int Count;
}
...
List<Data> items = new List<Data> ();
... // fill your list with Data instances, initialized with values
double total = 0; // running total
int totalcount = 0; // total number of items
for ( int i = 0; i < items.Count; i++ )
{
totalcount += items[i].Count;
total += ( items[i].Count * items[i].Percent );
}
double result = total / totalcount;