Klasa MathContext
Klasa MathContex
t jest klasą pomocniczą dla klasy BigDecima
l.
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