大数字部门返回1 [c ++]

时间:2017-08-30 15:40:17

标签: 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] = 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

那么,我做错了什么? y数组返回0,1,1,1,1,...,它应该不是1

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

det(A,N-1)/ D = -0.05919999629259109195883585509348322869497780932400145347 ......

它不是1。

谢谢!

1 个答案:

答案 0 :(得分:2)

函数det返回一个int。你永远不会从中获得浮点值。