为什么我的矩阵乘法不能给出预期的结果?

owfi6suc  于 2021-08-25  发布在  Java
关注(0)|答案(0)|浏览(270)

此问题已在此处找到答案

浮点数学坏了吗((30个答案)
如何在java中打印小数点后两位的浮点((17个答案)
四天前关门。
我在做一个练习,要求我开发一个代码,将两个不同维度的矩阵相乘,但结果与书中不同。如果你能帮我改进代码,请。(java)

public class MultiplyMatrixa {
public static void main(String[] args) {
    double[][] a = {
            {0.70, 0.20, 0.10},
            {0.30, 0.60, 0.10},
            {0.50, 0.10, 0.40}
    };
    double[][] b = {
            {0.20, 0.30, 0.50},
            {0.10, 0.20, 0.10},
            {0.10, 0.30, 0.40}
    };
    double[][] c = new double[a.length][b[0].length];
    for (int i = 0; i < a.length; i++) {
        for (int j = 0; j < b[0].length; j++) {
            // Dot product of row i and column j.
            for (int k = 0; k < b.length; k++)
                c[i][j] += a[i][k] * b[k][j];
        }
    }
    for (int i = 0; i < a.length; i++) { // Print the ith row.
        for (int j = 0; j < b[0].length; j++)
            System.out.print(c[i][j] + " ");
        System.out.println();
    }
}

}
根据这本书,出口应该是这样的:正确的输出
正确输出:
0.17 0.28 0.41
0.13 0.24 0.25
0.15 0.29 0.42
但结果表明:
0.16999999999999998 0.28 0.41000000000000003
0.13 0.24 0.25
0.15000000000000002 0.29 0.42000000000000004
我怎样才能修好它?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题