Класс перечисления RoundingMode
- Все реализованные интерфейсы:
Serializable, Comparable<RoundingMode>, Constable
public enum RoundingMode extends Enum<RoundingMode>
В более общем случае политика округления задает отображение множества вещественных чисел в подмножество представимых значений. Для BigDecimal представимые значения зависят от используемой при вычислении точности. Если математический результат находится в пределах диапазона экспоненты BigDecimal, он будет точно представим с заданной точностью результата либо окажется между двумя соседними представимыми значениями. Если он находится между двумя представимыми значениями, политика округления определяет, какое из этих двух ограничивающих значений станет результатом. Для вещественных чисел в пределах диапазона политика округления при заданном наборе представимых значений отображает непрерывный отрезок числовой прямой в одно представимое значение; при этом вещественное число, численно равное представимому значению, отображается в это значение.
В описании каждого режима округления приведена таблица, показывающая, как различные десятичные числа с двумя разрядами округляются до десятичного числа с одним разрядом в соответствующем режиме. Результаты в столбце можно получить, создав число 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 | throw ArithmeticException
|
| 2.5 | 3 | 2 | 3 | 2 | 3 | 2 | 2 | throw ArithmeticException
|
| 1.6 | 2 | 1 | 2 | 1 | 2 | 2 | 2 | throw ArithmeticException
|
| 1.1 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | throw 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 | throw ArithmeticException
|
| -1.6 | -2 | -1 | -1 | -2 | -2 | -2 | -2 | throw ArithmeticException
|
| -2.5 | -3 | -2 | -2 | -3 | -3 | -2 | -2 | throw ArithmeticException
|
| -5.5 | -6 | -5 | -5 | -6 | -6 | -5 | -6 | throw ArithmeticException
|
Этот enum предназначен для замены перечисления констант режимов округления на основе целых чисел в BigDecimal (BigDecimal.ROUND_UP, BigDecimal.ROUND_DOWN и т. д.).
- Примечание к API:
- Пять режимов округления, объявленных в этом классе, соответствуют атрибутам направления округления, определенным в стандарте IEEE для арифметики с плавающей запятой. Если такое соответствие имеется, оно отмечено в документации соответствующей константы.
- См. Спецификацию языка Java:
- 15.4 Выражения с плавающей запятой
- Начиная с версии:
- 1.5
- Внешние спецификации
- См. также:
Краткое описание вложенных классов
Вложенные классы и интерфейсы, объявленные в классе Enum
Enum.EnumDesc<E>
Краткое описание констант перечисления
| Константа перечисления | Описание |
|---|---|
CEILING |
Режим округления в сторону положительной бесконечности. |
DOWN |
Режим округления в сторону нуля. |
FLOOR |
Режим округления в сторону отрицательной бесконечности. |
HALF_DOWN |
Режим округления в сторону «ближайшего соседа», а если оба соседа равноудалены — вниз. |
HALF_EVEN |
Режим округления в сторону «ближайшего соседа», а если оба соседа равноудалены — в сторону четного соседа. |
HALF_UP |
Режим округления в сторону «ближайшего соседа», а если оба соседа равноудалены — вверх. |
UNNECESSARY |
Режим округления, утверждающий, что запрошенная операция дает точный результат и поэтому округление не требуется. |
UP |
Режим округления от нуля. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static RoundingMode |
valueOf |
Возвращает объект RoundingMode, соответствующий устаревшей целочисленной константе режима округления в BigDecimal. |
static RoundingMode |
valueOf |
Возвращает константу перечисления этого класса с указанным именем. |
static RoundingMode[] |
values() |
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления. |
Подробное описание констант перечисления
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
- Примечание к API:
- Этот режим округления аналогичен политике округления, используемой для операторов остатка и преобразования в целое значение в
floatиdouble(JLS 15.4). Этот режим соответствует атрибуту направления округления IEEE 754 roundTowardZero.Пример:
Примеры режима округления DOWN Входное число Входное число, округленное до одного разряда
с округлениемDOWN5.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. Обратите внимание, что этот режим округления никогда не уменьшает вычисленное значение. Этот режим соответствует атрибуту направления округления IEEE 754 roundTowardPositive. Пример:
| Входное число | Входное число, округленное до одного разряда с округлением 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. Обратите внимание, что этот режим округления никогда не увеличивает вычисленное значение. Этот режим соответствует атрибуту направления округления IEEE 754 roundTowardNegative. Пример:
| Входное число | Входное число, округленное до одного разряда с округлением 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; в противном случае — как RoundingMode.DOWN. Обратите внимание, что именно этот режим округления обычно преподают в школе. Этот режим соответствует атрибуту направления округления IEEE 754 roundTiesToAway. Пример:
| Входное число | Входное число, округленное до одного разряда с округлением 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; в противном случае — как 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.- Примечание к API:
- При многократном применении в последовательности вычислений этот режим округления статистически минимизирует накопленную ошибку. Иногда его называют «банковским округлением»; он используется главным образом в США. Этот режим округления аналогичен политике округления, применяемой для большинства арифметических операторов
floatиdoubleв Java (JLS 15.4). Этот режим соответствует атрибуту направления округления IEEE 754 roundTiesToEven.Пример:
Примеры режима округления HALF_EVEN Входное число Входное число, округленное до одного разряда
с округлениемHALF_EVEN5.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 | throw ArithmeticException
|
| 2.5 | throw ArithmeticException
|
| 1.6 | throw ArithmeticException
|
| 1.1 | throw ArithmeticException
|
| 1.0 | 1 |
| -1.0 | -1 |
| -1.1 | throw ArithmeticException
|
| -1.6 | throw ArithmeticException
|
| -2.5 | throw ArithmeticException
|
| -5.5 | throw ArithmeticException
|
Подробное описание методов
values
public static RoundingMode[] values()
- Возвращает:
- массив, содержащий константы этого класса перечисления в порядке их объявления
valueOf
public static RoundingMode valueOf(String name)
- Параметры:
-
name— имя возвращаемой константы перечисления. - Возвращает:
- константу перечисления с указанным именем
- Вызывает исключение:
-
IllegalArgumentException— если в этом классе перечисления нет константы с указанным именем -
NullPointerException— если аргумент равен null
valueOf
public static RoundingMode valueOf(int rm)
RoundingMode, соответствующий устаревшей целочисленной константе режима округления в BigDecimal.- Параметры:
-
rm— устаревший целочисленный режим округления для преобразования - Возвращает:
-
RoundingMode, соответствующий заданному целому числу. - Вызывает исключение:
-
IllegalArgumentException— целое число находится вне допустимого диапазона
© 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/math/RoundingMode.html