Я пытаюсь преобразовать число с основанием 10 в число с основанием 2 и обратно в основание 10. Это работает только для положительного аргумента_десятичного числа.
argument_binary = Integer.toBinaryString(argument_decimal);
back_converted_argument_decimal = Integer.valueOf(argument_binary, 2);
Если аргумент_десятичного числа отрицательный, я получаю «java.lang.NumberFormatException: для входной строки: «11111111111111111111111111111111»»
РЕДАКТИРОВАТЬ: вот что я делаю:
latitude_binary = Integer.toBinaryString((int)(latitude_decimal * 1000000));
back_converted_latitude_decimal = Long.parseLong(latitude_binary, 2) / 1000000.0;
что дает мне плохие результаты, такие как -1,1 при преобразовании вперед и назад в 4293,867296