Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有奇异结果的矩阵加法_Java_Matrix - Fatal编程技术网

Java 具有奇异结果的矩阵加法

Java 具有奇异结果的矩阵加法,java,matrix,Java,Matrix,我写了以下代码 public class MatrixAddition { public static void main(String[] args) { double matrix[][] = { { 1.2, 3.3, 1.2 }, { 1.0, 2.2, 4.5 }, { 1.3, 4.5, 2.2 } }; double matrix1[][] = { { 2.2, -3.3, 1.1 }, { 7.0, -2.2, 4.2 }, {

我写了以下代码

public class MatrixAddition
{
    public static void main(String[] args)
    {

        double matrix[][] = { { 1.2, 3.3, 1.2 }, { 1.0, 2.2, 4.5 }, { 1.3, 4.5, 2.2 } };
        double matrix1[][] = { { 2.2, -3.3, 1.1 }, { 7.0, -2.2, 4.2 }, { 2.2, 0.0, 0.3 } };
        double result[][] = new double[matrix.length][matrix1.length];

        for(int iResult = 0; iResult < result.length; iResult++) {
            for(int jResult = 0; jResult < result[iResult].length; jResult++) {
                result[iResult][jResult] = matrix[iResult][jResult] + matrix1[iResult][jResult];

                System.out.print(result[iResult][jResult] + " ");
            }

            System.out.print("\n");
        }
    }
}
每次更改矩阵[i0][j0]和矩阵X1[i0][j0]的值时,我都会得到正确的结果,但当值为1.2和2.2时,我总是得到3.400000000000004。我如何解决这个问题,以及为什么会发生这种情况


提前感谢。

浮点值是近似值。某些十进制值不能用它们精确表示。通常,您可以通过在输出数字时将数字格式设置为合理的小数位数来隐藏它们。或者使用另一种数字类型,如
BigDecimal

这是由于使用了浮点值,正如其他人所说-。

不使用浮点值。你需要多少小数?使用整数或BigDecimal。例如,我需要双倍,这是用于物理项目,矩阵将填充-10.1和7.7之间的值。您需要多少精度?可以使用BigDecimal,也可以使用long,在需要显示时将点放在正确的位置。
3.4000000000000004 0.0 2.3

8.0 0.0 8.7 

3.5 4.5 2.5