如何在双精度数组中找到最小的正(非零)数?例如,如果数组包含0.04
,0.0001
和0.0
,我想返回0.0001
。
以下功能很好,但它会以min为单位返回零,这不是我感兴趣的。
static double[] absOfSub = new double[100];
...
private static double compare(double[] ds) {
double min = absOfSub[0];
for (double d : ds) {
min = Math.min(min, d);
}
return min;
}
如何让它忽略零?
答案 0 :(得分:5)
您可以检查零:
double min = Double.MAX_VALUE;
for (double d : ds)
{
min = (d == 0) ? min : Math.min(min, d);
}