Вычисление ответа в Java с более чем 16 десятичными разрядами
Мы написали небольшую программу для расчета Пи на Java.
Мои суммирования в настоящее время набраны.double
У меня есть два выхода, один из которых является Пи до 16 десятичных знаков (необработанный вывод). Второй вывод округляется с помощью /NumberFormat
DecimalFormat
до 3-5 знаков после запятой.
Я потратил немного времени на поиск и просмотр Stackoverflow, но, будучи новичком, яя не уверен ни в какомkeywords
что может понадобиться, чтобы найти правильный метод I 'ищу, поэтому прошу прощения за мою наивность ...
Можно ли рассчитать ответ (т.е. число Пи) на более чем 16 знаков после запятой? Скажи, 32? Если так, как я могу подойти к этому?
мы смотрели наBigDecimal
Однако я нене думаю, что это то, что ям после всех примеров яМы видели, как предварительно определяем число с большим количеством десятичных знаков, а не с помощью вычислений, но я могу ошибаться.
Я понимаю 'double
это 64-битный тип, поэтому выигралдостичь более 16 знаков после запятой. Я также понимаю, используяlong
как тип потеряет точность ...
Любые советы или рекомендации будут оценены.
Спасибо.
Обновить
К сожалению, Я'я все еще не получаю больше 16 знаков после запятой, используя BigDecimals ... Я двигаюсь в правильном направлении?
Обновить снова '
Я только что понял, я думаю, что моя проблема сscale
во время моего подразделения. Я изменил его на 100, и теперь я получаю Пи до 100 десятичных знаков ... Я думаю, чтоscale
параметр обеспечивает большую точность и т. д. Требуетсяdivide(BigDecimal divisor, int scale, int roundingMode)
метод. Смотрите Java Doc >> здесь <<
С 500 000 терминов из Мадхавы -Ряд Лейбница, теперь я могу рассчитать Пи до 10 000 десятичных знаков с 6 'правильный' значимые фигуры. Остальные все еще сходятся (и, очевидно, нужно 1000 's больше терминов, чтобы получить более точное представление о Пи). Но для целей, для которых большинству из нас нужен Пи, это хорошо.
Спасибо за вашу помощь.