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

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

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

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

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

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