Большие числа Java

Большие числа JavaЕсли для решения задачи недостаточно точности встроенных целочисленных типов и чисел с плавающей точкой, можно обратиться к классам BigInteger и BigDecimal из пакета java.math.

Эти классы предназначены для выполнения действий с числами, состоящими из произвольного количества цифр. Классы BigInteger и BigDecimal реализуют арифметические операции произвольной точности соответственно для целых и действительных чисел.Для преобразования обычного числа в число с произвольной точностью(называемое также большим числом) используется статический метод ValueOf();

BigInteger a = BigInteger.valueOf(100);

К сожалению, к большим числам нельзя применять обычные математические операции вроде + или *. Вместо этого надо использовать методы add() и multiply() из соответствующих классов.

BigInteger c = a.add(b); // c = a + b
BigInteger d = c.multiply(b.add(BigInteger.value.Of(2)));
// d = c * (b + 2)

В отличии от C++, язык Java не поддерживает перегрузку операций. Поэтому разработчики класса BigInteger были лишены возможности переопределить операции + или * для методов add() и multiply() в классе BigInteger.

Проектировщики языка перегрузили только операцию + для обозначения конкатенации строк. Они решили не перегружать остальные операции и не предоставили такой возможности программистам Java в их собственных классах.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *