Вам необходимо использовать MathContext
для увеличения точности BigDecimal
например.
MathContext mc = new MathContext(1000);
BigDecimal TWO = new BigDecimal(2, mc);
Важно, чтобы ВСЕ BigDecimal
, которые вы используете в своих вычислениях, использовали это MathContext
.
Метод Герона должен дать вам 1000 цифр точности всего за 10 итераций и миллион цифр за 20 итераций, так что это, безусловно, достаточно хорошо.
Также создайте все постоянные BigDecimal
s, например, например. 26390
только один раз в начале вашей программы.