Класс 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.
При использовании третьего из перечисленных конструкторов возникает неприятная особенность, отмеченная в документации. Поскольку вещественное число при переводе в двоичную форму представляется, как правило, бесконечной двоичной дробью, то при создании объекта, например,
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий