Мне нужно работать с большими числами (что-то в диапазоне 1E100 - 1E200). Однако класс BigInteger
, который, по-видимому, подходит в целом, не распознает строки в научном формате во время инициализации, а также не поддерживает преобразование в строку в формате.
BigDecimal d = new BigDecimal("1E10"); //works
BigInteger i1 = new BigInteger("10000000000"); //works
BigInteger i2 = new BigInteger("1E10"); //throws NumberFormatException
System.out.println(d.toEngineeringString()); //works
System.out.println(i1.toEngineeringString()); //method is undefined
Есть ли способ? Я не могу себе представить, что такой класс был спроектирован с предположением, что пользователи должны вводить сотни нулей во входных данных.