Иллюстрированный самоучитель по Java



              

Класс Big Decimal


Класс

BigDecimal

расположен В пакете

java.math

.

Каждый объект этого класса хранит два целочисленных значения: мантиссу вещественного числа в виде объекта класса

Biglnteger

, и неотрицательный десятичный порядок числа типа

int

.

Например, для числа 76.34862 будет храниться мантисса 7 634 862 в объекте класса

Biglnteger

, и порядок 5 как целое число типа

int

. Таким образом, мантисса может содержать любое количество цифр, а порядок ограничен значением константы

integer.MAX_VALUE

. Результат операции над объектами класса

BigDecimal

округляется по одному из восьми правил, определяемых следующими статическими целыми константами:

ROUND_CEILING

— округление в сторону большего целого;

ROUND_DOWN

— округление к нулю, к меньшему по модулю целому значению;

ROUND_FLOOR

— округление к меньшему целому;

ROUND_HALF_DOWN

— округление к ближайшему целому, среднее значение округляется к меньшему целому;

ROUND_HALF_EVEN

— округление к ближайшему целому, среднее значение округляется к четному числу;

ROOND_HALF_UP

— округление к ближайшему целому, среднее значение округляется к большему целому;

ROUND_UNNECESSARY

— предполагается, что результат будет целым, и округление не понадобится; 

ROUND_UP

— округление от нуля, к большему по модулю целому значению.

В классе

BigDecimal

четыре конструктора:

BigDecimal (Biglnteger bi) —

объект будет хранить большое целое

bi,

порядок равен нулю;

BigDecimal (Biglnteger mantissa, int scale)

— задается мантиса

mantissa

и неотрицательный порядок

scale

объекта; если порядок

scale

отрицателен, возникает исключительная ситуация;

BigDecimal (double d)

— объект будет содержать вещественное число удвоенной точности

d

; если значение

d

бесконечно или

NaN

, то возникает исключительная ситуация;

BigDecimal (String val)

число задается строкой символов

val

, которая должна содержать запись числа по правилам языка Java.

При использовании третьего из перечисленных конструкторов возникает неприятная особенность, отмеченная в документации. Поскольку вещественное число при переводе в двоичную форму представляется, как правило, бесконечной двоичной дробью, то при создании объекта, например,




Содержание  Назад  Вперед