Spec-Zone.ru › OpenJDK 8

Перечисление RoundingMode

  • java.lang.Object
    • java.lang.Enum<RoundingMode>
      • java.math.RoundingMode
Все реализованные интерфейсы:
Serializable, Comparable<RoundingMode>

public enum RoundingMode
extends Enum<RoundingMode>

Определяет поведение округления для числовых операций, способных отбрасывать точность. Каждый режим округления указывает, как вычисляется наименее значащая возвращаемая цифра округленного результата. Если возвращается меньше цифр, чем цифр, необходимых для представления точного числового результата, отброшенные цифры будут называться отброшенной дробной частью независимо от вклада этих цифр в значение числа. Другими словами, рассматриваемая как числовое значение, отброшенная дробная часть может иметь абсолютное значение больше единицы.

Описание каждого режима округления включает таблицу, показывающую, как различные двузначные десятичные значения будут округляться до однозначного десятичного значения в соответствии с рассматриваемым режимом округления. Столбец со значениями результата можно получить, создав BigDecimal число со значениями заданного значения, сформировав объект MathContext с соответствующими настройками (precision установлено в 1, и roundingMode установлено в режим округления), и вызвав round на этом числе с соответствующими MathContext. Ниже приведена сводная таблица, показывающая результаты этих операций округления для всех режимов округления.

Результат округления входного числа до одной цифры с заданным режимом округления
Входное число UP DOWN CEILING FLOOR HALF_UP HALF_DOWN HALF_EVEN UNNECESSARY
5.5 6 5 6 5 6 5 6 бросить ArithmeticException
2.5 3 2 3 2 3 2 2 бросить ArithmeticException
1.6 2 1 2 1 2 2 2 бросить ArithmeticException
1.1 2 1 2 1 1 1 1 бросить ArithmeticException
1.0 1 1 1 1 1 1 1 1
-1.0 -1 -1 -1 -1 -1 -1 -1 -1
-1.1 -2 -1 -1 -2 -1 -1 -1 бросить ArithmeticException
-1.6 -2 -1 -1 -2 -2 -2 -2 бросить ArithmeticException
-2.5 -3 -2 -2 -3 -3 -2 -2 бросить ArithmeticException
-5.5 -6 -5 -5 -6 -6 -5 -6 бросить ArithmeticException

Эта enum предназначена для замены основанного на целых числах перечисления констант режима округления в BigDecimal (BigDecimal.ROUND_UP, BigDecimal.ROUND_DOWN и т.д.).

С:
1.5
См. также:
BigDecimal, MathContext

Постоянные перечисления

Постоянная перечисления и описание
CEILING

Режим округления до положительной бесконечности.

DOWN

Режим округления до нуля.

FLOOR

Режим округления до отрицательной бесконечности.

HALF_DOWN

Режим округления до ближайшего соседа, если оба соседа равноудалены, в этом случае округлять вниз.

HALF_EVEN

Режим округления до ближайшего соседа, если оба соседа равноудалены, в этом случае округлять до ближайшего чётного соседа.

HALF_UP

Режим округления до ближайшего соседа, если оба соседа равноудалены, в этом случае округлять вверх.

UNNECESSARY

Режим округления, чтобы гарантировать, что запрашиваемый результат точный, следовательно, округление не требуется.

UP

Режим округления от нуля.

Методы

Модификатор и тип Метод и описание
static RoundingMode valueOf(int rm)

Возвращает объект RoundingMode, соответствующий константе режима округления старого стиля в BigDecimal.

static RoundingMode valueOf(String name)

Возвращает константу перечисления этого типа с указанным именем.

static RoundingMode[] values()

Возвращает массив, содержащий константы этого типа перечисления в порядке их объявления.

Методы, унаследованные от класса java.lang.Enum

clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf

Методы, унаследованные от класса java.lang.Object

getClass, notify, notifyAll, wait, wait, wait

Постоянные значения перечисления

UP

public static final RoundingMode UP

Режим округления, при котором результат округляется от нуля. Всегда увеличивает цифру перед не нулевой отброшенной дробной частью. Обратите внимание, что этот режим округления никогда не уменьшает величину вычисленного значения.

Пример:

Входное число Входное число, округленное до одного знака
с округлением UP
5.5 6
2.5 3
1.6 2
1.1 2
1.0 1
-1.0 -1
-1.1 -2
-1.6 -2
-2.5 -3
-5.5 -6

DOWN

public static final RoundingMode DOWN

Режим округления, при котором результат округляется к нулю. Никогда не увеличивает цифру перед отброшенной дробной частью (т.е. обрезает). Обратите внимание, что этот режим округления никогда не увеличивает величину вычисленного значения.

Пример:

Входное число Входное число, округленное до одного знака
с округлением DOWN
5.5 5
2.5 2
1.6 1
1.1 1
1.0 1
-1.0 -1
-1.1 -1
-1.6 -1
-2.5 -2
-5.5 -5

CEILING

public static final RoundingMode CEILING

Режим округления, при котором результат округляется до положительной бесконечности. Если результат положительный, он ведет себя так же, как RoundingMode.UP; если отрицательный, он ведет себя так же, как RoundingMode.DOWN. Обратите внимание, что этот режим округления никогда не уменьшает вычисленное значение.

Пример:

Входное число Входное число, округленное до одного знака
с округлением CEILING
5.5 6
2.5 3
1.6 2
1.1 2
1.0 1
-1.0 -1
-1.1 -1
-1.6 -1
-2.5 -2
-5.5 -5

FLOOR

public static final RoundingMode FLOOR

Режим округления, при котором результат округляется до отрицательной бесконечности. Если результат положительный, он ведет себя как RoundingMode.DOWN; если отрицательный, он ведет себя как RoundingMode.UP. Обратите внимание, что этот режим округления никогда не увеличивает вычисленное значение.

Пример:

Входное число Входное число, округленное до одного знака
с округлением FLOOR
5.5 5
2.5 2
1.6 1
1.1 1
1.0 1
-1.0 -1
-1.1 -2
-1.6 -2
-2.5 -3
-5.5 -6

HALF_UP

public static final RoundingMode HALF_UP

Режим округления, который округляет к ближайшему соседу, если оба соседа находятся на одинаковом расстоянии, в этом случае округляется вверх. Ведет себя как RoundingMode.UP, если отброшенная дробная часть ≥ 0,5; в противном случае ведет себя как RoundingMode.DOWN. Обратите внимание, что этот режим округления обычно преподается в школе.

Пример:

Входное число Входное число, округленное до одного знака
с округлением HALF_UP
5.5 6
2.5 3
1.6 2
1.1 1
1.0 1
-1.0 -1
-1.1 -1
-1.6 -2
-2.5 -3
-5.5 -6

HALF_DOWN

public static final RoundingMode HALF_DOWN

Режим округления, который округляет к ближайшему соседу, если оба соседа находятся на одинаковом расстоянии, в этом случае округляется вниз. Ведёт себя как RoundingMode.UP если отброшенная дробная часть > 0,5; в противном случае ведет себя как RoundingMode.DOWN.

Пример:

Входное число Входное число, округленное до одного знака
с округлением HALF_DOWN
5.5 5
2.5 2
1.6 2
1.1 1
1.0 1
-1.0 -1
-1.1 -1
-1.6 -2
-2.5 -2
-5.5 -5

HALF_EVEN

public static final RoundingMode HALF_EVEN

Режим округления, который округляет к ближайшему соседу, если оба соседа находятся на одинаковом расстоянии, в этом случае округляется к ближайшему четному соседу. Ведет себя как RoundingMode.HALF_UP если цифра слева от отброшенной дробной части нечетная; ведет себя как RoundingMode.HALF_DOWN если четная. Обратите внимание, что этот режим округления статистически минимизирует кумулятивную ошибку при многократном применении в последовательности вычислений. Иногда его называют «округлением банкиров», и он в основном используется в США. Этот режим округления аналогичен политике округления, используемой для арифметики float и double в Java.

Пример:

Входное число Входное число, округленное до одного знака
с округлением HALF_EVEN
5.5 6
2.5 2
1.6 2
1.1 1
1.0 1
-1.0 -1
-1.1 -1
-1.6 -2
-2.5 -2
-5.5 -6

UNNECESSARY

public static final RoundingMode UNNECESSARY

Режим округления, чтобы утверждать, что запрашиваемая операция имеет точный результат, поэтому округление не требуется. Если этот режим округления указан для операции, которая дает неточный результат, будет выброшено исключение ArithmeticException.

Пример:

Входное число Входное число, округленное до одного знака
с округлением UNNECESSARY
5.5 бросить ArithmeticException
2.5 бросить ArithmeticException
1.6 бросить ArithmeticException
1.1 бросить ArithmeticException
1.0 1
-1.0 -1
-1.1 бросить ArithmeticException
-1.6 бросить ArithmeticException
-2.5 бросить ArithmeticException
-5.5 бросить ArithmeticException

Методы

values

public static RoundingMode[] values()

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

for (RoundingMode c : RoundingMode.values())
    System.out.println(c);

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

valueOf

public static RoundingMode valueOf(String name)

Возвращает константу перечисления этого типа с указанным именем. Строка должна точно совпадать с идентификатором, используемым для объявления константы перечисления в этом типе. (Дополнительные пробелы не допускаются.)

Параметры:
name - имя константы перечисления, которое нужно вернуть.
Возвращает:
константу перечисления с указанным именем
Исключения:
IllegalArgumentException - если в этом типе перечисления нет константы с указанным именем
NullPointerException - если аргумент равен null

valueOf

public static RoundingMode valueOf(int rm)

Возвращает объект RoundingMode , соответствующий константе режима округления для целочисленного значения в BigDecimal.

Параметры:
rm - целочисленное значение режима округления для преобразования
Возвращает:
RoundingMode , соответствующий данному целому числу.
Исключения:
IllegalArgumentException - целое число выходит за пределы диапазона

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API