double変数をDouble.NaN
で初期化し、入力に応じて後で入力することがありました。入力に間違いがあった場合は、ちょうどDouble.NaN
を返します。この練習は、アプリケーションの他の部分が自分の関数を入力として使用してOKを実行し、基本的な算術演算を行い、doubleとNaNs
を比較すると逆行しました(しかし例外ではありませんでした。Javaでdouble変数を初期化するもっとも安全な方法
明白な解決策は、私のコードの末尾にDouble.isNaN()
を追加して、私の機能 内で例外をスローするだろう。しかし、これは、高度に最適化されたコードでは非常に使用する関数ですので、私はそれがあるたびにチェックし、余分なを追加したくありませんよと呼ばれる。むしろ、余分なチェックを追加するよりも、年に一度間違ったパラメータでアプリケーション全体を中断することを好むでしょう。 NaN
と比較すると2倍に比べて時間がかかります。どのように私はそれを達成し、この状況でベストプラクティスは何ですか?
EDIT例えば 、私は、ユーザー入力に
double f1 = getFirstFactor(userParams);
double threshold = f(f1); // for example f1 * 100 + f1;
// ideally, code above breaks if f1 is not defined and I don't go futher
if(threshold >= 0) {
...
} else {
...
}
あなたのデザインで何かが間違っているような音がします。コードを表示し、どのような提案が必要な場合は、変数の初期化と使用方法を示す必要があります。 – Kayaman
'' Double''のデフォルト値として '' null''を使うとどうなりますか?なぜ「ナナ」? – f1sh
@ f1sh「ダブル」、「ダブル」ではありません。 – Kayaman