2012-04-29 10 views
2

2倍の配列で最小の正(ゼロ以外)の数字を見つける方法はありますか?たとえば、配列に0.040.0001、および0.0が含まれている場合は、0.0001を返します。分が0であることを確認する

以下の関数は良いですが、minとして0を返しますが、これは私の興味ではありません。

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; 
} 

どうすればゼロを無視できますか?

+2

なぜそれが間違っていますか?配列の中で最も小さい数字が好きなようです。 – MByD

+0

@BinyaminSharetスクロールダウンしましたか?それより小さいのは7.719277021974478E-73ですか? – lonesome

+0

いいえ、いいえ、「EX」のXが大きくなるほど、数字は低くなります...これは科学的表記です... – MByD

答えて

5

あなたはゼロのためにチェックすることができます

double min = Double.MAX_VALUE; 
for (double d : ds) 
{ 
    min = (d == 0) ? min : Math.min(min, d); 
} 
+0

** Double.MIN_VALUE **にしてはいけませんか? – lonesome

+1

'Double.MIN_VALUE'で始まっていれば、配列に何が含まれていても結果(' Double.MIN_VALUE')が得られます。もしDouble.MAX_VALUEで始まっていれば、配列。 – MByD

+0

あなたは私の編集を見ることができますか? – lonesome

関連する問題