我是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
的几何平均值?