Общая идея состоит в том, чтобы сначала преобразовать двойное в свое длинное представление (используя, doubleToLongBitsкак вы это сделали getRealBinary), увеличить его на 1, и, наконец, преобразовать новый длинный назад в double, через который он представляет longBitsToDouble.
EDIT: Java (с 1.5) обеспечивает Math.ulp(double), что я предполагаю , что вы можете использовать для вычисления следующего более высокого значения , непосредственно следующим образом: x + Math.ulp(x).