У меня есть .dat-файл, содержащий множество огромных чисел, таких как 568e24 1.20536e8 1.3526e12 1.5145e11. И я уже ввожу эти числа как String и сохраняюсь в ArrayList. Мне нужно использовать это число для вычисления и представления гравитационного тела в Солнечной системе. Но в java он уже превышает верхний предел Double и Int. Что я должен делать, чтобы использовать эти числа в Java.NumberFormatException при преобразовании больших текстовых номеров в BigInteger
Вот мой код, который вводит эти данные и сохраняет эти данные как String в ArrayList.
public static void main(String[] args) throws Exception{
Scanner input = new Scanner(new File("solarsystem.dat"));
ArrayList<String[]> BodyData = new ArrayList<String[]>();
input.nextLine();
while(input.hasNextLine()){
String x = input.nextLine();
String[] x1 = x.split("[^a-zA-Z0-9().]+");
BodyData.add(x1);
}
System.out.println(BodyData.get(0)[0]);
Я пытаюсь использовать BigInteger изменить строку в BigIntiger на следующий код:
BigInteger reallyBig = new BigInteger("1898e24");
System.out.print(reallyBig);
Но выход неправильно:
Exception in thread "main" java.lang.NumberFormatException: For input string: "1898e24"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.math.BigInteger.<init>(BigInteger.java:470)
at java.math.BigInteger.<init>(BigInteger.java:606)
at tryScanner.main(tryScanner.java:18)
Итак ... теперь .. что должен ли я использовать это большое количество, например 1898e24. Мне нужно изменить формат этого номера (1898e24), например 1898000000000 ...?
BigDecimal - ваш друг – Andremoniy
['BigDecimal'] (https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html). –
Что вы должны делать? Гуглинг перед тем, как сбросить свой вопрос. Просто как тот. – Paul