public double determinantU(double[][] matrix) {
        int n = matrix.length;
        // Lasketaan determinantti hajotelman U-matriisista.
        double determinant = matrix[0][0];
        for (int k = 1; k < n; k++) {
            determinant = determinant * matrix[k][k];
        }
        // Pyöristetään laskennassa käytetyistä epätarkoista liukuluvuista aiheutuvat ylimääräiset desimaalit.
        // Koska LU-hajotelmassa murtoluvut käsitellään epätarkkoina liukulukuina, on determinanttina
        // ilman pyöristystä usein x.00000000000001 silloin kun todellinen determinantti on x.
        String det = Double.toString(determinant);
        if (det.length() > 10) {
            if (det.charAt(3) == '0' && det.charAt(10) == '0') {
                determinant = Math.round(determinant);
                System.out.println(determinant);
            }
        }
        return determinant;
    }