次の入力があるとします。
4534534534564657652349234230947234723947234234823048230957349573209483057
12324000123123
これらの値を次の方法で割り当てようとしBigInteger
ました。
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
BigInteger num1 = BigInteger.valueOf(sc.nextLong());
sc.nextLine();
BigInteger num2 = BigInteger.valueOf(sc.nextLong());
BigInteger additionTotal = num1.add(num2);
BigInteger multiplyTotal = num1.multiply(num2);
System.out.println(additionTotal);
System.out.println(multiplyTotal);
}
最初の値は長い数値の境界の外にあるため、次の例外が発生します。
スレッド「メイン」の例外 java.util.InputMismatchException: 入力文字列の場合: 「4534534534564657652349234230947234723947234234823048230957349573209483057」
BigInteger は、メソッドで使用するために Long 型を期待していると想定しました(ここでvalueOf()
述べたように)。非常に大きな数値を BigInteger に渡すにはどうすればよいですか?