计算几何平均值时的舍入误差

时间:2015-06-08 20:14:39

标签: c types algebraic-data-types

我是C中的新手,并且对我可以使用的不同数据类型没有很好的理解。

我有一个半数百万的双数组(foo),在0(不包括)和1(包括)之间,其中大约三分之一的值是0.01的数量级。我试图计算这个数组的几何平均值。

我正在做类似

的事情
double prod = 1;
for (int i = 0; i < arraylength; i++) prod *= foo[i];
double mean = pow(prod, 1.0/arraylength);

问题在于prod“应该变得”非常小,可能大约10美元{ - 10 ^ {6}} $。

如何解决此问题并计算foo的几何平均值?

0 个答案:

没有答案