double の値が NaN かどうかは == 演算子ではチェックできない

double の変数が NaN かどうかは、Double#isNaN() でチェックする。
double の変数と Double.NaN を == で比較したら、常にfalseになってしまう。

	double d = Double.NaN;
	
	if (d == Double.NaN) {
		// ここは通らない
	}
	
	if (Double.isNaN(d)) {
		// ここは通る
	}

SQLの null みたいなもので、全てのNaNは違う値とみなされるから。