我有一个包含大量数字的.dat文件,例如568e24 1.20536e8 1.3526e12 1.5145e11。我已经将这些数字输入为String,并存储在ArrayList中。我需要用这些数来计算和表示太阳系中的引力体。但是在java中它已经超过了Double和Int的上限。我想在Java中使用这些数字。
这是我的代码,它输入这些数据并将这些数据作为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通过以下代码将String更改为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 ......?