Dwie takie same metody dodają double w różny sposób

0

Cześć Wam,
mam dwie metody dodające do siebie elementy tablicy z wartościami double. Różnią się tylko sposobem przypisania do tablicy tabAB.

double a =0;
double b=0;
        public double[] poprawny wynik(){
            for(int i=0;i<tab.length/2; i++){
                a=tab[i]+a;
            }
            for(int x =tab.length/2; x<tab.length; x++){
                b=tab[x]+b;
            }

            tabAB[0]=a;
            tabAB[1]=b;
        return tabAB;
        }
        
        public double[] blednyWynik(){
            int z=0;
            for(int i=0;i<tab.length/2; i++){
                tabAB[z]=tab[i]+a;
            }
            z++;
            for(int x =tab.length/2; x<tab.length; x++){
                    tabAB[z]=tab[x]+b;
            }
        return tabAB;
        }

Np. a = (0.20.4)+(0.20.4) jeżeli najpierw pomnożycie osobno wartości w nawiasach a potem dodacie to wyjdzie
wynik prawidłowy, a jeśli pomnożycie te wartości w pierwszym nawiasie a potem dodacie tą drógą wartość w nawiasie (jako jedno równanie) to wyjdzie inny/błędny.
Metoda dróga zdaje się tak właśnie zliczać sumy. A różnica tylko w sposobie wstawiania do tabAB.
Mi natomiast chodzi tylko oto aby wyniki zliczane w 2 pierwszych pętlach, wstawiać do innej tablicy w trzeciej pętli, bo nie wiem ile wyników będę miał w przyszłości więc nie mogę zwykle przypisać tych wartości jak w metodzie poprwanyWynik() co zresztą było by prowizorką. Być może jutro znajdę rozwiązanie ale wolę jednak zapytać bardziej doświadczonych jak je wstawiać do tablicy bez błędnych wyników bo te działania niczym się nie różnią a wyniki wyraznie inne.

1

Wydaje mi się że to miałes na myśli:

        public double[] blednyWynik(){
            tabAB[0]=0;
            for(int i=0;i<tab.length/2; i++){
                tabAB[0]+=tab[i]; // tabAB[0]=tab[i]+tabAB[0];
            }
            tabAB[1]=0;
            for(int x =tab.length/2; x<tab.length; x++){
                tabAB[1]+=tab[x]; //    tabAB[1]=tab[x]+tabAB[1];
            }
        return tabAB;
        }
0

Dzięki bardzo. O to mi chodziło.

1 użytkowników online, w tym zalogowanych: 0, gości: 1