число больше long (java)
в задаче столкнулся с такой необходимостью. Нужно считать сканером с консоли число больше long. Я так понимаю нужно будет заносить это число в BigIneteger, но каким методом считать сканером не понимаю, или нужно считать как строку и преобразовать, но можно ли преобразовать строку в BigIneteger?
Ответы (3 шт):
Используйте метод nextBigInteger класса Scanner.
Вот пример:
import java.math.BigInteger;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
BigInteger number = in.nextBigInteger();
System.out.println(number);
}
}
А чтобы преобразовать строку в BigInteger, можно так попробовать:
import java.math.BigInteger;
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String line = in.nextLine();
BigInteger number = new BigInteger(line);
System.out.println(number);
}
}
Судя по комментариям, вычислять не надо, надо только сравнить. А т.к. 9223372036854775807 тоже не помещается в long, то можно и сравнивать строки. Сначала длину, которая длина больше, то и число больше. Если длины одинаковые, то уже сравнить лексически строки.
всем спасибо, ваша инфа была полезна для изучения. мне помогло применение исключений try - catch. то есть в try я проводил сравнение чисел long и ниже, а в исключение уже вывел в строке то что больше long.