我想要得到几个数字的加权平均值。 基本上我有:
Price - 134.42
Quantity - 15236545
可以有少至一两个或多达五十或六十对价格和数量。 我需要弄清楚价格的加权平均值。 基本上,加权平均值应该给对象提供非常小的权重
Price - 100000000.00
Quantity - 3
以及更多对上面的那对。
我现在的公式是:
((price)(quantity) + (price)(quantity) + ...)/totalQuantity
到目前为止,我做到了这一点:
double optimalPrice = 0;
int totalQuantity = 0;
double rolling = 0;
System.out.println(rolling);
Iterator it = orders.entrySet().iterator();
while(it.hasNext()) {
System.out.println("inside");
Map.Entry order = (Map.Entry)it.next();
double price = (Double)order.getKey();
int quantity = (Integer)order.getValue();
System.out.println(price + " " + quantity);
rolling += price * quantity;
totalQuantity += quantity;
System.out.println(rolling);
}
System.out.println(rolling);
return rolling/totalQuantity;
问题是我很快就将“滚动”变量最大化了。
我怎样才能真正得到加权平均值?