c++ - long long 到 long double 的转换

标签 c++ c type-conversion

我正在尝试将 long long 矩阵的第一行转换为 long double,但是当我打印结果时它只打印 0。这是函数:

void convertLLtoLD(long long **B, long double **C, int n){
    int i, j;
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            C[i][j] = 0;
        }
    }

    for (i = 0; i < n; i++) {
        C[0][i] = B[0][i]; //C[0][i] = (long double)B[0][i];
    }
    for(i = 0; i < n; i++)
        printf("%lf ", C[0][i]);
}

这是我在调用函数之前分配 C 的代码:

long double** C = (long double**)malloc(n * sizeof(long double*));

for (i = 0; i < DIM; i++) {
    C[i] = (long double*)malloc(n * sizeof(long double));
}

我正在使用 GCC 4.8 编译代码。 B 是从文件中读取的,它的值是正确的,因为我在调用函数之前打印了它们。即使我在函数中打印它们,结果也是一样的。当我在评论中使用类型转换时,结果也相同。有人可以向我解释为什么它不起作用吗?

谢谢

最佳答案

在声明中:

printf("%lf ", C[0][i]);

您使用了不正确的说明符(它需要一个 double)。

使用%Lf打印一个long double,使用%lld打印一个long long

注意:

关于c++ - long long 到 long double 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25185367/

相关文章:

C++ 在多态对象中引用

c++ - CpupSyscallStub 是什么?

c++ - 重载解析和用户定义转换

python - 正在寻找函数语法来根据两个不同的字典键/值对检查数据帧列?

c++ - 根据子构造函数参数调用具有不同参数的父构造函数

c++ - 我应该如何解释 OProfile 输出?

c - 想要避免一次调用八个线程的 sempost

调用函数FindNextFile抛出访问冲突异常

c - 警告 : array subscript has type ‘char’ [-Wchar-subscripts]

PHP 错误类的对象无法转换为字符串