568e24 1.20536e8 1.3526e12 1.5145e11などの多数の巨大な数値を含む.datファイルがあります。そして私は既にこれらの数値をStringとして入力し、ArrayListに格納しました。ソーラーシステムの重力体を計算して表現するには、これらの数値を使用する必要があります。しかし、それはすでにDoubleとIntの上限を超えています。 Javaでこれらの数値を使用するにはどうすればよいでしょうか。大きなテキスト番号をBigIntegerに変換するときのNumberFormatException
これらのデータを入力し、これらのデータをArrayListのStringとして格納するコードです。
BigInteger reallyBig = new BigInteger("1898e24");
System.out.print(reallyBig);
しかし、出力が間違っている:私は次のコードでBigIntigerに文字列を変更するためのBigIntegerを使用しようとしています
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]);
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