このコードは、浮動小数点が特別な非数値と等価であるか確かめています (たとえば、if (x == Double.NaN))。 しかしながら、NaN の特別な意味のため、値は NaN と等価ではありません。 したがって、x == Double.NaN は常に false と評価します。 x という値が特別な非数値であるかどうか確かめるためには Double.isNaN(x) を使用します (あるいは、x が浮動小数点精度であるなら Float.isNaN(x))。