Klasa MathContext jest klasą pomocniczą dla klasy BigDecimal.
W klasie MathContext ustawiamy precyzję i tryb zaokrąglenia.

Precyzja

Liczba cyfr, która będzie użyta przy wykonywaniu działania matematycznego oraz liczba cyfr, która zostanie wyświetlone. precision = 0 oznacza nieograniczoną liczbę cyfr. Jeśli precyzja jest większa niż wymagana, brakujące do wyświetlenia cyfry zostaną zastąpione zerami, jeśli będzie mniejsza niż potrzebna do wyświetlenia dokładnego rezultatu – liczba zostanie zaokrąglona zgodnie z podanym trybem zaokrąglenia. Liczby precyzji są liczone od lewej strony do prawej. Znak i kropka dziesiętna nie są liczone.
Precyzja podana w MathContext jest uwzględniana głównie przy obliczaniu i prezentacji wyników, a nie przy tworzeniu liczby.

Tryb zaokrąglenia

Był omówiony powyżej.

Obiekty predefiniowane

Obiekt Opis
MathContext.DECIMAL32 precision=7
roundingMode=HALF_EVEN
MathContext.DECIMAL64 precision=16
roundingMode=HALF_EVEN
MathContext.DECIMAL128 precision=34
roundingMode=HALF_EVEN/td>
MathContext.UNLIMITED precision=0
roundingMode=HALF_UP

Obiekt predefiniowany tworzymy:

MathContext m2 = MathContext.DECIMAL128;
Util.print(m2);

Konstruktory

MathContext(int setPrecision)
Ustawiamy precyzję. Tryb jest wstępnie ustawiony na HALF_UP.
MathContext(int setPrecision, RoundingMode setRoundingMode)
Tworzy obiekt o podanej prezycji i z podanym trybem zaokrąglenia.
MathContext(String val)
Tworzy obiekt ze stringu. W stringu muszą być podane precyzja i tryb zaokrąglenia. W stringu używamy opisów z tabelki pokazującej tryby predefiniowane oddzielone spacją.
Obiekt tworzymy (BigDec01.java):

MathContext mc = new MathContext("precision=7 roundingMode=HALF_EVEN");
Util.print(mc);

Po uruchomieniu zobaczymy na konsoli:

precision=7 roundingMode=HALF_EVEN

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *