[Java] Zaokrąglanie liczb z N dokładnością...

anika91
Użytkownik
Użytkownik
Posty: 172
Rejestracja: 11 paź 2009, o 19:54
Płeć: Kobieta
Lokalizacja: Gdańsk
Podziękował: 67 razy

[Java] Zaokrąglanie liczb z N dokładnością...

Post autor: anika91 »

Witam ! Mam taki programik w którym pierwszy parametr konstruktora określa do ilu miejsc po przecinku ma zaokrąglić wynik np. z dokładnością do 12, 3, 2, itd. A wynikiem jest pole trójkata, którego boki są przekazywane jako kolejne parametry w konstruktorze...

Czyli mniej więcej szkielet tego konstruktora wygląda tak:

Kod: Zaznacz cały

public Test (int dokladnosc, int bok1, int bok2, int bok3){
}
ponadto mam metodę , która mi liczy pole trójkąta ze wzoru Herona:

Kod: Zaznacz cały

public double liczPole(){
               
                double obwod2=(bok1+bok2+bok3)/2.0;
                double pole= Math.sqrt((obwod2*(obwod2-bok1)*(obwod2-bok2)*(obwod2-bok3)));
               
                return pole;
        }
następnie w metodzie toString() wyświetlam informację które potrzebuję czyli m.in zwracam w returnie liczPole() , które podaje mi wynik pola...;


Mój problem polega na tym, że nie wiem za bardzo gdzie i jak umieścić element dot. tej dokładności do N miejsc po przecinku... Próbowałam kombinować z Math.round(dokladnosc, pole); ale coś mi nie idzie... Dziękuje za pomoc !
Awatar użytkownika
czeslaw
Użytkownik
Użytkownik
Posty: 2156
Rejestracja: 5 paź 2008, o 22:12
Płeć: Mężczyzna
Lokalizacja: Politechnika Wrocławska
Podziękował: 44 razy
Pomógł: 317 razy

[Java] Zaokrąglanie liczb z N dokładnością...

Post autor: czeslaw »

Kod: Zaznacz cały

public double liczPole(){
               
                double obwod2=(bok1+bok2+bok3)/2.0;
                double heron= Math.sqrt((obwod2*(obwod2-bok1)*(obwod2-bok2)*(obwod2-bok3)));
                double pole = heron * 10^dokladnosc;
                return Math.round(pole) / 10^dokladnosc;
        }
smiechowiec
Użytkownik
Użytkownik
Posty: 374
Rejestracja: 21 cze 2007, o 11:28
Płeć: Mężczyzna
Lokalizacja: Łostowice
Pomógł: 146 razy

[Java] Zaokrąglanie liczb z N dokładnością...

Post autor: smiechowiec »

Przypuszczam, że chodzi raczej o wypisanie wartości z pewną dokładnością niż wypisanie na końcu liczby ciągu zer.

Kod: Zaznacz cały

    public static String formatliczby(double liczba, int precyzja) {
        return "" + (new BigDecimal("" + liczba).setScale(precyzja, BigDecimal.ROUND_HALF_UP).doubleValue());
    }
w toString należy wypisać formatliczby(liczPole(), dokładność)
ODPOWIEDZ