C++ 大数除法返回1[c+;+;]

C++ 大数除法返回1[c+;+;],c++,largenumber,C++,Largenumber,我是新来的,如果我的问题有点愚蠢,我很抱歉,但是,我在计算两个大数字的除法,并将它们存储在一个数组中,如下所示: int det(double M[25][25], int m) { /*returns large numbers*/ } int main() { float y[27]; double A[25][25] = {0}, N = 26, D = -134430487042201894894174208; y[0] = 0; y[26]

我是新来的,如果我的问题有点愚蠢,我很抱歉,但是,我在计算两个大数字的除法,并将它们存储在一个数组中,如下所示:

int det(double M[25][25], int m)
{
    /*returns large numbers*/
}

int main()
{
    float y[27];
    double A[25][25] = {0}, N = 26, D = -134430487042201894894174208;

    y[0] = 0;
    y[26] = 1;

    for (int i = 0; i < N-1; i++)
    {
        //Reset A[][] to the original
        for (int k = 0; k < N-1; k++)
        {
            for (int J = 0; J < N-1; J++)
                {
                    A[k][J] = m[k][J];
                }
        }
        //Change values of A[j][i]
        for (int j = 0; j < N-1; j++)
          {
              A[j][i] = d[j+1];
          }
        y[i+1] = det(A,N-1)/D; //Here y returns only 0, 1, 1, 1, 1, ...
    }
}D
int det(双M[25][25],int M)
{
/*返回大数*/
}
int main()
{
浮动y[27];
双A[25][25]={0},N=26,D=-134430487042201894894174208;
y[0]=0;
y[26]=1;
对于(int i=0;i
那么,我做错了什么?y数组返回0,1,1,1,而且应该不是1

det(A,N-1)=7958284334509567005163520 D=-134430487042201894894174208

数据(A,N-1)/D=-0.05919962925910919588358550934832269497780932400145347

不是1


谢谢

函数det正在返回一个int。您永远无法从中获取浮点值。

函数det正在返回一个int。您永远无法从中获取浮点值。

常量
134430487042201894894174208
在大多数平台上都无法表示。这些数字看起来非常大。检查正在使用的数据类型的名称。您可能需要一个bignum库来获得相当准确的结果。您的示例无法编译<未定义代码>m
d
。请提供帮助。如果
-134430487042201894894174208
-134430487042201894894174208.0帮助我认为你无法存储这么大的数字
-134430487042201894894174208
常量
134430487042201894894174208
在大多数平台上都无法表示。这些数字看起来非常大。检查正在使用的数据类型的名称。您可能需要一个bignum库来获得相当准确的结果。您的示例无法编译<未定义代码>m和
d
。请提供一个。如果
-134430487042201894894174208
->
-134430487042201894894174208.0
帮助,请试一试。我认为你不能存储这么大的号码
-134430487042201894894174208
你裁定了!谢谢,你统治了它!谢谢