【发布时间】:2012-05-09 07:53:20
【问题描述】:
如何在双精度数组中找到最小的正数(非零)?比如数组包含0.04、0.0001、0.0,我想返回0.0001。
下面的函数很好,但它会返回零作为最小值,这不是我的兴趣。
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;
}
如何让它忽略零?
【问题讨论】:
-
为什么会出错?在我看来,它是数组中最小的数字。
-
@BinyaminSharet 你向下滚动了吗? 7.719277021974478E-73 不是比那个小吗?
-
不不不,
E-X中的X越大,数字越小……这是科学计数法…… -
@BinyaminSharet 哦,我的数学不好 :) 好的,所以你的答案是对的 :)
-
@lonesome 请检查我的编辑,看看它是否更清晰并提出正确的问题。