BigInteger
Целое число любого размера — когда не хватает даже long.
Доступно с: Java 1.1
Синтаксис
public class BigInteger extends Number implements Comparable<BigInteger>Примеры
Факториал 30 не помещается в long:
void main() {
BigInteger result = BigInteger.ONE;
for (int i = 2; i <= 30; i++) {
result = result.multiply(BigInteger.valueOf(i));
}
IO.println(result);
}Результат:
265252859812191058636308480000000Степень, остаток и сравнение:
void main() {
var big = new BigInteger("2").pow(100);
IO.println(big);
IO.println(big.mod(BigInteger.TEN));
IO.println(big.compareTo(BigInteger.valueOf(Long.MAX_VALUE)) > 0);
}Результат:
1267650600228229401496703205376
6
trueПримечания
Операторы +, *, < с BigInteger не работают — только методы add(), multiply(), compareTo(). Объекты неизменяемы, каждый метод возвращает новое число. Готовые константы: BigInteger.ZERO, ONE, TWO, TEN.
См. также
- BigDecimal — Точное десятичное число — для денег и расчётов, где недопустимы ошибки округления double.
- Integer.MAX_VALUE — Наибольшее значение типа int; рядом — Integer.MIN_VALUE.
- Long.parseLong() — Превращает строку с целым числом в long — для чисел, которые не помещаются в int.
- Math.pow() — Возводит число в степень.
Вопросы и ответы по теме
В учебнике
- Примитивные типы — Восемь примитивных типов Java: int, long, double, float, char, boolean, byte и short, их диапазоны и переполнение.