Почему long int и int выдают одинаковую точность?

#include "iostream"
#include "iomanip"
#include "math.h"
using namespace std;

const double pi = 3.1415926535897932384626433;

long long int factorial(int n) {
    long long int result = 1;
    for (int i = 2; i <= n; i++) {
        result *= i;
    }
    return result;
}

class trigonometry {
private:
    const double eps = 0.000000000000000000000000000001;
public:
    double _sin(double argv) {
        if (argv < 0) {
            return -sin(-argv);
        }
        else {
            while (argv >= 2 * pi) {
                argv -= 2 * pi;
            }
            if (argv >= pi / 2) {
                return cos(argv - pi / 2);
            }
            else {
                double result=0;
                for (int i = 0; pow(argv, 2 * i) / factorial(2 * i) > eps; i++) {
                    result += pow(-1, i) * pow(argv, 2 * i + 1) / factorial(2 * i + 1);
                }
                return result;
            }
        }
    }
    double _cos(double argv) {
        if (argv < 0) {
            return cos(-argv);
        }
        else {
            while (argv >= 2 * pi) {
                argv -= 2 * pi;
            }
            if (argv >= pi / 2) {
                return -sin(argv - pi / 2);
            }
            else {
                double result=0;
                for (int i = 0; pow(argv, 2 * i) / factorial(2 * i) > eps; i++) {
                    result += pow(-1, i) * pow(argv, 2 * i) / factorial(2 * i);
                }
                return result;
            }
        }
    }
    double _tan(double argv) {
        return _sin(argv) / _cos(argv);
    }
    double _cot(double argv) {
        return _cos(argv) / _sin(argv);
    }
};
int main() {

    trigonometry a;

    cout  <<setprecision(25) << fixed <<a._cos(100);



    cout << '\n';
    system("pause");
    return 0;
}

Почему в функции factorial типы переменных int и long long int выдают одинаковую точность на выходе?


Ответы (0 шт):