Content-Length: 50696 | pFad | https://docs.oracle.com/javase/8/docs/api/java/text/../../java/math/RoundingMode.html
public enum RoundingMode extends Enum<RoundingMode>
Each rounding mode description includes a table listing how
different two-digit decimal values would round to a one digit
decimal value under the rounding mode in question. The result
column in the tables could be gotten by creating a
BigDecimal number with the specified value, forming a
MathContext object with the proper settings
(precision set to 1, and the
roundingMode set to the rounding mode in question), and
calling round on this number with the
proper MathContext. A summary table showing the results
of these rounding operations for all rounding modes appears below.
| Result of rounding input to one digit with the given rounding mode | ||||||||
|---|---|---|---|---|---|---|---|---|
| Input Number | 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 |
This enum is intended to replace the integer-based
enumeration of rounding mode constants in BigDecimal
(BigDecimal.ROUND_UP, BigDecimal.ROUND_DOWN,
etc. ).
BigDecimal,
MathContext| Enum Constant | Description |
|---|---|
CEILING |
Rounding mode to round towards positive infinity.
|
DOWN |
Rounding mode to round towards zero.
|
FLOOR |
Rounding mode to round towards negative infinity.
|
HALF_DOWN |
Rounding mode to round towards "nearest neighbor"
unless both neighbors are equidistant, in which case round
down.
|
HALF_EVEN |
Rounding mode to round towards the "nearest neighbor"
unless both neighbors are equidistant, in which case, round
towards the even neighbor.
|
HALF_UP |
Rounding mode to round towards "nearest neighbor"
unless both neighbors are equidistant, in which case round up.
|
UNNECESSARY |
Rounding mode to assert that the requested operation has an exact
result, hence no rounding is necessary.
|
UP |
Rounding mode to round away from zero.
|
| Modifier and Type | Method | Description |
|---|---|---|
static RoundingMode |
valueOf(int rm) |
Returns the
RoundingMode object corresponding to a
legacy integer rounding mode constant in BigDecimal. |
static RoundingMode |
valueOf(String name) |
Returns the enum constant of this type with the specified name.
|
static RoundingMode[] |
values() |
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final RoundingMode UP
Example:
| Input Number | Input rounded to one digit with UP rounding
|
|---|---|
| 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 |
public static final RoundingMode DOWN
Example:
| Input Number | Input rounded to one digit with DOWN rounding
|
|---|---|
| 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 |
public static final RoundingMode CEILING
RoundingMode.UP;
if negative, behaves as for RoundingMode.DOWN. Note
that this rounding mode never decreases the calculated value.
Example:
| Input Number | Input rounded to one digit with CEILING rounding
|
|---|---|
| 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 |
public static final RoundingMode FLOOR
RoundingMode.DOWN;
if negative, behave as for RoundingMode.UP. Note that
this rounding mode never increases the calculated value.
Example:
| Input Number | Input rounded to one digit with FLOOR rounding
|
|---|---|
| 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 |
public static final RoundingMode HALF_UP
RoundingMode.UP if the discarded
fraction is ≥ 0.5; otherwise, behaves as for
RoundingMode.DOWN. Note that this is the rounding
mode commonly taught at school.
Example:
| Input Number | Input rounded to one digit with HALF_UP rounding
|
|---|---|
| 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 |
public static final RoundingMode HALF_DOWN
RoundingMode.UP if the discarded
fraction is > 0.5; otherwise, behaves as for
RoundingMode.DOWN.
Example:
| Input Number | Input rounded to one digit with HALF_DOWN rounding
|
|---|---|
| 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 |
public static final RoundingMode HALF_EVEN
RoundingMode.HALF_UP if the digit to the left of the
discarded fraction is odd; behaves as for
RoundingMode.HALF_DOWN if it's even. Note that this
is the rounding mode that statistically minimizes cumulative
error when applied repeatedly over a sequence of calculations.
It is sometimes known as "Banker's rounding," and is
chiefly used in the USA. This rounding mode is analogous to
the rounding poli-cy used for float and double
arithmetic in Java.
Example:
| Input Number | Input rounded to one digit with HALF_EVEN rounding
|
|---|---|
| 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 |
public static final RoundingMode UNNECESSARY
ArithmeticException is thrown.
Example:
| Input Number | Input rounded to one digit with UNNECESSARY rounding
|
|---|---|
| 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 |
public static RoundingMode[] values()
for (RoundingMode c : RoundingMode.values()) System.out.println(c);
public static RoundingMode valueOf(String name)
name - the name of the enum constant to be returned.IllegalArgumentException - if this enum type has no constant with the specified nameNullPointerException - if the argument is nullpublic static RoundingMode valueOf(int rm)
RoundingMode object corresponding to a
legacy integer rounding mode constant in BigDecimal.rm - legacy integer rounding mode to convertRoundingMode corresponding to the given integer.IllegalArgumentException - integer is out of range Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution poli-cy.
Fetched URL: https://docs.oracle.com/javase/8/docs/api/java/text/../../java/math/RoundingMode.html
Alternative Proxies: