Есть ли лучший способ хранить больше цифр после десятичной точки, чем long double? - PullRequest
0 голосов
/ 03 апреля 2019

В настоящее время я работаю над проблемой, которая вычисляет число пи.Вычислительная часть работает нормально, но с моим текущим типом данных я могу вычислить только определенное количество цифр, прежде чем он перестанет их хранить (~ 32?).

Я использую длинный двойной, но я хочу больше цифр, предпочтительно переменную сумму.

#include <iostream>
#include <math.h>
#include<bits/stdc++.h>
//variables
float sign = 1.0;
long double sum = 0.0;
float start = 3.0;
int iteration = 0.0;

int main() {

    std::cout << "How many iterations should be completed?" << std::endl;
    std::cin >> iteration;
//calculating part
    for (int j = 1; j < iteration; j++) {
        sum = sum + sign * 4.0 / ((2 * j) * (2 * j + 1.0) * (2 * j + 2.0));
        sign *= -1.0;
    }
//output     
    std::cout << std::fixed << std::setprecision(1000) << sum + start << std::endl;

    return 0;
}

Я получаю то, что ожидаю, но я не нашел тип данных, которыймагазинов еще больше.Должен ли я сам написать один?

...