私は二重の値が不足している値をマークするあらかじめ定義された定数と比較されるコードで作業しています。この値は、それらが一定の要件を満たさない場合には(ここではinput
)の変数に割り当てられているような方法で使用されます。倍精度浮動小数点数型(Double#)の倍精度浮動小数点型をscalaで比較すると保存されますか?
val BAD = -9999.9
val verified = if(isQualityOk(input)) input else BAD
その後のアプリケーションで、数字は、再び彼らが優れているかどうかを調べるかされていません。
if(!myNumber.equals(BAD)) {
// do something with it
}
私は、したがって、されてそれらの差の絶対値を比較することをお勧めします、一般的にエラーが原因(有限機械精度)を丸めの「等しい」を使用してフロート/ Double値を比較することは悪い考えであることを承知しています一定の制限の下で
私の質問:これは数字で算術演算が行われていない上記の例でも必要ですか?この場合、Double#equals
の実装を使用するのは安全ですか?
ありがとうございます!私はこれが機能していないことを十分に認識しています、私はちょうど既存のコードを見直しています。私の例も簡素化されています.2つ以上の "フラグ"つまり良い/悪いだけの定数があります。 –