Есть ли способ сгенерировать и распечатать пи до n-й цифры в Java>

Хорошо, я новичок в программировании и всегда интересовался числами, поэтому я подумал, что могу попытаться создать код для генерации и печати «n» чисел числа Пи.

После небольшого исследования все, что я смог найти, - это способы вычисления числа Пи без использования встроенных функций, таких как Math.PI, но ничего в java, чтобы фактически вывести число Пи с числом цифр больше 16.

Код, который я быстро сделал, был таким

import java.io.*;
import java.lang.System;
import java.lang.Math;
import java.util.ArrayList;
import java.util.Scanner;

public class piDisplay {

public static void main (String args[]) {

    Scanner scan = new Scanner(System.in);

    ArrayList <Integer> piDigit = new ArrayList <Integer>();

    double test = Math.PI;
    System.out.print(test);

    int numDigits = scan.nextInt();
    double pi = 0;

    for(int i = 0; i < numDigits; i++) {

        pi += (1/Math.pow(16, (double)i))*(4/(double)((i*8)+1)-2/(double)((i*8)+4)-1/(double)((i*8)+5)-1/(double)((i*8)+6));

        //adds each individual digit to an array
        piDigit.add((int)((pi*Math.pow(10, i))%10));

        System.out.println(pi);
        System.out.println(piDigit.toString());
    }
}
}

Он использует формулу BBP для вычисления числа пи, но я просто не знаю, как бы я распечатал более 16 цифр, если есть даже способ сделать это в java (вероятно, есть).

Любой вклад приветствуется, спасибо.

Вы можете использовать класс BigDecimal, чтобы обойти аппаратные ограничения, или создать свою собственную более конкретную задачу.

Tschallacka 06.07.2018 11:51
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
238
0

Другие вопросы по теме