Согласно Javadoc:
public static double nextAfter(double start, double direction)
...
- Если начало равно ± Double.MAX_VALUE, а направление имеет такое значение, что результат должен иметь большую величину, возвращается бесконечность с тем же знаком, что и начало.
Но согласно этот пример:
System.out.println(Double.MAX_VALUE);
System.out.println(Math.nextAfter(Double.MAX_VALUE, 1));
System.out.println(Math.nextAfter(Double.MAX_VALUE, 1) == Double.POSITIVE_INFINITY);
Вывод:
1.7976931348623157E308
1.7976931348623155E308
false
А? Это не только Double.POSITIVE_INFINITY
, но и меньше по величине.
...157E308
...155E308
Я просто полностью неправильно читаю Javadoc?