2012-05-01 18 views
1

タイトルが示唆するように、特定のDoubleが否定的であるかどうかをどうやって確認するのですか?ここではどのようにDoubleは、インスタンスDouble値が負であるかどうかを確認する方法?

(Double.parseDouble(data[2]) 

思考、提案を取得していますか?

+4

私はこれをダウンホーティングしていませんが、これは深刻な疑問ではありません... – dasblinkenlight

+1

私が考えることができるのは、負の0のある厄介なコーナーケースがある場合ですが、まだ... –

+0

確かに私は質問そのものに言及していたはずのコーナーがありました。そして、私は最初に試したものを入れておかなければならないということに同意します。もし誰かがこの質問を削除できたら、ここでそれを持つ価値がないので、 – Rachel

答えて

17
Double v = (Double.parseDouble(data[2])); 
if (v<0){ 
//do whatever? 
} 
5

それが< 0であるかどうかをテストできます。

if (Double.parseDouble(data[2]) < 0) { 
    // the number is negative 
} else { 
    // the number is positive 
} 
1
Double.parseDouble(data[2]); 

はあなたにDoubleを与えるものではありません、それはdoubleを返します。あなたがDoubleにそれを割り当てているならば、それはオートバイによってそこに行きます。とにかくそれが負であるかどうかを見るために0と比較しますか? のように:

Double.parseDouble(data[2]) < 0; 
3

Double.parseDoubledouble(プリミティブ)を返していないDouble。この場合、それは本当に重要ではありませんが、意識する価値があります。

あなたは使用することができます。

if (foo < 0) 

は値が負であるかどうかを確認するために - 原因「ではない数」にはなく、この

​​

の反対ではないことに注意してください値。しかし、それは無限の値で動作します。私はかなり好き

0

別の可能な解決策は、杓子定規なので

Double v = Double.parseDouble(data[2]); 

if (v == Math.abs(v)) 
{ 
    //must be positive 
} 
else 
{ 
    //must be negative 
} 
+0

-0.0を処理することができず、 "x <0"よりもあまり明瞭ではないため、下降しています。 –

25

で、< 0はあなたにすべての負の数を与えることはありません。

double d = -0.0; 
System.out.println(d + " compared with 0.0 is " + Double.compare(d, 0.0)); 
System.out.println(d + " < 0.0 is " + (d < 0.0)); 

プリント

-0.0 compared with 0.0 is -1 
-0.0 < 0.0 is false 

-0.0が負のではなくより小さい0.0

を使用でき

public static boolean isNegative(double d) { 
    return Double.compare(d, 0.0) < 0; 
} 

より鈍角、バージョンがチェックする場合は、より効率的な符号付きビット。

public static boolean isNegative(double d) { 
    return Double.doubleToRawLongBits(d) < 0; 
} 

注意:IEEE-754の下では、NaNは負数と同じ符号付きビットを持つことができます。

+0

賢くない!それは絶対に正しいです、私は数回以上来て、絶対に0以上であると主張しています。重要なセクションでは、どのネガもギアにレンチを投げます。 1つの特定の負の数に対してx> = 0が成り立つことは、認識すべきことです。 – Tatarize

+1

Cool。 Double.compareTo()は、0.0dが-0.0dよりも厳密に大きいと明示的にみなしていることに注意してください。 (また、Double.equals()も同じように動作します) – mwfearnley

+0

@matthewfearnleyまた、 'Float' –

関連する問題