Я нашел ошибку в своем коде, которая сводилась к сравнению Double(0.0) с Double.MIN_VALUE.По сути, следующее возвращает false:
Double(0.0)
Double.MIN_VALUE
System.out.println(0.0 > Double.MIN_VALUE);
Как это возможно?
Согласно javadoc для Double.MIN_VALUE , MIN_VALUE равно:
Константа, содержащая наименьшее положительное ненулевое значение типа double
Таким образом, Double.MIN_VALUE не является отрицательным, это положительное значение, которое настолько близко, насколько Double может достигнуть нуля (без нуля).
Double.MIN_VALUE - это наименьшее положительное ненулевое значение, которое может быть представлено двойным Java-символом (см. JavaDoc по адресу http://download.oracle.com/javase/8/docs/api/java/lang/Double.html).