これは式です:
if( Math.abs(GH1[i]) < Double.valueOf("1E-100") ){
.
.
.
}
すべての変数はdouble
型です。私が比較しようとしていることは、コードから明らかなはずです。コンパイラもエラーを表示しないため、これは java で正しいと常に想定していました。しかし、最近ここ==
で、浮動小数点数の比較に使用してはならないことを読みました。他の関係演算子にも当てはまりますか? が心配でない場合は、または関数 NaN
の代わりに組み込みの関係演算子を使用できますか?Double
Float
以下の表現は使えますか?
if(GH1[i] < 0.0f) // if( Double.compare(GH1[i], 0.0f) < 0 )
tempSign = -1.0f;
else if(GH1[i] == 0.0f) // else if( Double.compare(GH1[i], 0.0f) == 0 )
tempSign = 0.0f;
else if(GH1[i] > 0.0f) // else if( Double.compare(GH1[i], 0.0f) > 0 )
tempSign = 1.0f;
それとも、Double と Float の関数を使用する必要がありますか?