< prev index next >
src/java.base/share/classes/java/math/RoundingMode.java
Print this page
*** 53,82 ****
*
*<table border>
* <caption><b>Summary of Rounding Operations Under Different Rounding Modes</b></caption>
* <tr><th></th><th colspan=8>Result of rounding input to one digit with the given
* rounding mode</th>
! * <tr valign=top>
* <th>Input Number</th> <th>{@code UP}</th>
* <th>{@code DOWN}</th>
* <th>{@code CEILING}</th>
* <th>{@code FLOOR}</th>
* <th>{@code HALF_UP}</th>
* <th>{@code HALF_DOWN}</th>
* <th>{@code HALF_EVEN}</th>
* <th>{@code UNNECESSARY}</th>
*
! * <tr align=right><td>5.5</td> <td>6</td> <td>5</td> <td>6</td> <td>5</td> <td>6</td> <td>5</td> <td>6</td> <td>throw {@code ArithmeticException}</td>
! * <tr align=right><td>2.5</td> <td>3</td> <td>2</td> <td>3</td> <td>2</td> <td>3</td> <td>2</td> <td>2</td> <td>throw {@code ArithmeticException}</td>
! * <tr align=right><td>1.6</td> <td>2</td> <td>1</td> <td>2</td> <td>1</td> <td>2</td> <td>2</td> <td>2</td> <td>throw {@code ArithmeticException}</td>
! * <tr align=right><td>1.1</td> <td>2</td> <td>1</td> <td>2</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>throw {@code ArithmeticException}</td>
! * <tr align=right><td>1.0</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td>
! * <tr align=right><td>-1.0</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td>
! * <tr align=right><td>-1.1</td> <td>-2</td> <td>-1</td> <td>-1</td> <td>-2</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>throw {@code ArithmeticException}</td>
! * <tr align=right><td>-1.6</td> <td>-2</td> <td>-1</td> <td>-1</td> <td>-2</td> <td>-2</td> <td>-2</td> <td>-2</td> <td>throw {@code ArithmeticException}</td>
! * <tr align=right><td>-2.5</td> <td>-3</td> <td>-2</td> <td>-2</td> <td>-3</td> <td>-3</td> <td>-2</td> <td>-2</td> <td>throw {@code ArithmeticException}</td>
! * <tr align=right><td>-5.5</td> <td>-6</td> <td>-5</td> <td>-5</td> <td>-6</td> <td>-6</td> <td>-5</td> <td>-6</td> <td>throw {@code ArithmeticException}</td>
*</table>
*
*
* <p>This {@code enum} is intended to replace the integer-based
* enumeration of rounding mode constants in {@link BigDecimal}
--- 53,82 ----
*
*<table border>
* <caption><b>Summary of Rounding Operations Under Different Rounding Modes</b></caption>
* <tr><th></th><th colspan=8>Result of rounding input to one digit with the given
* rounding mode</th>
! * <tr style="vertical-align:top">
* <th>Input Number</th> <th>{@code UP}</th>
* <th>{@code DOWN}</th>
* <th>{@code CEILING}</th>
* <th>{@code FLOOR}</th>
* <th>{@code HALF_UP}</th>
* <th>{@code HALF_DOWN}</th>
* <th>{@code HALF_EVEN}</th>
* <th>{@code UNNECESSARY}</th>
*
! * <tr style="text-align:right"><td>5.5</td> <td>6</td> <td>5</td> <td>6</td> <td>5</td> <td>6</td> <td>5</td> <td>6</td> <td>throw {@code ArithmeticException}</td>
! * <tr style="text-align:right"><td>2.5</td> <td>3</td> <td>2</td> <td>3</td> <td>2</td> <td>3</td> <td>2</td> <td>2</td> <td>throw {@code ArithmeticException}</td>
! * <tr style="text-align:right"><td>1.6</td> <td>2</td> <td>1</td> <td>2</td> <td>1</td> <td>2</td> <td>2</td> <td>2</td> <td>throw {@code ArithmeticException}</td>
! * <tr style="text-align:right"><td>1.1</td> <td>2</td> <td>1</td> <td>2</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>throw {@code ArithmeticException}</td>
! * <tr style="text-align:right"><td>1.0</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td>
! * <tr style="text-align:right"><td>-1.0</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>-1</td>
! * <tr style="text-align:right"><td>-1.1</td> <td>-2</td> <td>-1</td> <td>-1</td> <td>-2</td> <td>-1</td> <td>-1</td> <td>-1</td> <td>throw {@code ArithmeticException}</td>
! * <tr style="text-align:right"><td>-1.6</td> <td>-2</td> <td>-1</td> <td>-1</td> <td>-2</td> <td>-2</td> <td>-2</td> <td>-2</td> <td>throw {@code ArithmeticException}</td>
! * <tr style="text-align:right"><td>-2.5</td> <td>-3</td> <td>-2</td> <td>-2</td> <td>-3</td> <td>-3</td> <td>-2</td> <td>-2</td> <td>throw {@code ArithmeticException}</td>
! * <tr style="text-align:right"><td>-5.5</td> <td>-6</td> <td>-5</td> <td>-5</td> <td>-6</td> <td>-6</td> <td>-5</td> <td>-6</td> <td>throw {@code ArithmeticException}</td>
*</table>
*
*
* <p>This {@code enum} is intended to replace the integer-based
* enumeration of rounding mode constants in {@link BigDecimal}
*** 100,121 ****
* value.
*
*<p>Example:
*<table border>
* <caption><b>Rounding mode UP Examples</b></caption>
! *<tr valign=top><th>Input Number</th>
* <th>Input rounded to one digit<br> with {@code UP} rounding
! *<tr align=right><td>5.5</td> <td>6</td>
! *<tr align=right><td>2.5</td> <td>3</td>
! *<tr align=right><td>1.6</td> <td>2</td>
! *<tr align=right><td>1.1</td> <td>2</td>
! *<tr align=right><td>1.0</td> <td>1</td>
! *<tr align=right><td>-1.0</td> <td>-1</td>
! *<tr align=right><td>-1.1</td> <td>-2</td>
! *<tr align=right><td>-1.6</td> <td>-2</td>
! *<tr align=right><td>-2.5</td> <td>-3</td>
! *<tr align=right><td>-5.5</td> <td>-6</td>
*</table>
*/
UP(BigDecimal.ROUND_UP),
/**
--- 100,121 ----
* value.
*
*<p>Example:
*<table border>
* <caption><b>Rounding mode UP Examples</b></caption>
! *<tr style="vertical-align:top"><th>Input Number</th>
* <th>Input rounded to one digit<br> with {@code UP} rounding
! *<tr style="text-align:right"><td>5.5</td> <td>6</td>
! *<tr style="text-align:right"><td>2.5</td> <td>3</td>
! *<tr style="text-align:right"><td>1.6</td> <td>2</td>
! *<tr style="text-align:right"><td>1.1</td> <td>2</td>
! *<tr style="text-align:right"><td>1.0</td> <td>1</td>
! *<tr style="text-align:right"><td>-1.0</td> <td>-1</td>
! *<tr style="text-align:right"><td>-1.1</td> <td>-2</td>
! *<tr style="text-align:right"><td>-1.6</td> <td>-2</td>
! *<tr style="text-align:right"><td>-2.5</td> <td>-3</td>
! *<tr style="text-align:right"><td>-5.5</td> <td>-6</td>
*</table>
*/
UP(BigDecimal.ROUND_UP),
/**
*** 124,145 ****
* rounding mode never increases the magnitude of the calculated value.
*
*<p>Example:
*<table border>
* <caption><b>Rounding mode DOWN Examples</b></caption>
! *<tr valign=top><th>Input Number</th>
* <th>Input rounded to one digit<br> with {@code DOWN} rounding
! *<tr align=right><td>5.5</td> <td>5</td>
! *<tr align=right><td>2.5</td> <td>2</td>
! *<tr align=right><td>1.6</td> <td>1</td>
! *<tr align=right><td>1.1</td> <td>1</td>
! *<tr align=right><td>1.0</td> <td>1</td>
! *<tr align=right><td>-1.0</td> <td>-1</td>
! *<tr align=right><td>-1.1</td> <td>-1</td>
! *<tr align=right><td>-1.6</td> <td>-1</td>
! *<tr align=right><td>-2.5</td> <td>-2</td>
! *<tr align=right><td>-5.5</td> <td>-5</td>
*</table>
*/
DOWN(BigDecimal.ROUND_DOWN),
/**
--- 124,145 ----
* rounding mode never increases the magnitude of the calculated value.
*
*<p>Example:
*<table border>
* <caption><b>Rounding mode DOWN Examples</b></caption>
! *<tr style="vertical-align:top"><th>Input Number</th>
* <th>Input rounded to one digit<br> with {@code DOWN} rounding
! *<tr style="text-align:right"><td>5.5</td> <td>5</td>
! *<tr style="text-align:right"><td>2.5</td> <td>2</td>
! *<tr style="text-align:right"><td>1.6</td> <td>1</td>
! *<tr style="text-align:right"><td>1.1</td> <td>1</td>
! *<tr style="text-align:right"><td>1.0</td> <td>1</td>
! *<tr style="text-align:right"><td>-1.0</td> <td>-1</td>
! *<tr style="text-align:right"><td>-1.1</td> <td>-1</td>
! *<tr style="text-align:right"><td>-1.6</td> <td>-1</td>
! *<tr style="text-align:right"><td>-2.5</td> <td>-2</td>
! *<tr style="text-align:right"><td>-5.5</td> <td>-5</td>
*</table>
*/
DOWN(BigDecimal.ROUND_DOWN),
/**
*** 149,170 ****
* that this rounding mode never decreases the calculated value.
*
*<p>Example:
*<table border>
* <caption><b>Rounding mode CEILING Examples</b></caption>
! *<tr valign=top><th>Input Number</th>
* <th>Input rounded to one digit<br> with {@code CEILING} rounding
! *<tr align=right><td>5.5</td> <td>6</td>
! *<tr align=right><td>2.5</td> <td>3</td>
! *<tr align=right><td>1.6</td> <td>2</td>
! *<tr align=right><td>1.1</td> <td>2</td>
! *<tr align=right><td>1.0</td> <td>1</td>
! *<tr align=right><td>-1.0</td> <td>-1</td>
! *<tr align=right><td>-1.1</td> <td>-1</td>
! *<tr align=right><td>-1.6</td> <td>-1</td>
! *<tr align=right><td>-2.5</td> <td>-2</td>
! *<tr align=right><td>-5.5</td> <td>-5</td>
*</table>
*/
CEILING(BigDecimal.ROUND_CEILING),
/**
--- 149,170 ----
* that this rounding mode never decreases the calculated value.
*
*<p>Example:
*<table border>
* <caption><b>Rounding mode CEILING Examples</b></caption>
! *<tr style="vertical-align:top"><th>Input Number</th>
* <th>Input rounded to one digit<br> with {@code CEILING} rounding
! *<tr style="text-align:right"><td>5.5</td> <td>6</td>
! *<tr style="text-align:right"><td>2.5</td> <td>3</td>
! *<tr style="text-align:right"><td>1.6</td> <td>2</td>
! *<tr style="text-align:right"><td>1.1</td> <td>2</td>
! *<tr style="text-align:right"><td>1.0</td> <td>1</td>
! *<tr style="text-align:right"><td>-1.0</td> <td>-1</td>
! *<tr style="text-align:right"><td>-1.1</td> <td>-1</td>
! *<tr style="text-align:right"><td>-1.6</td> <td>-1</td>
! *<tr style="text-align:right"><td>-2.5</td> <td>-2</td>
! *<tr style="text-align:right"><td>-5.5</td> <td>-5</td>
*</table>
*/
CEILING(BigDecimal.ROUND_CEILING),
/**
*** 174,195 ****
* this rounding mode never increases the calculated value.
*
*<p>Example:
*<table border>
* <caption><b>Rounding mode FLOOR Examples</b></caption>
! *<tr valign=top><th>Input Number</th>
* <th>Input rounded to one digit<br> with {@code FLOOR} rounding
! *<tr align=right><td>5.5</td> <td>5</td>
! *<tr align=right><td>2.5</td> <td>2</td>
! *<tr align=right><td>1.6</td> <td>1</td>
! *<tr align=right><td>1.1</td> <td>1</td>
! *<tr align=right><td>1.0</td> <td>1</td>
! *<tr align=right><td>-1.0</td> <td>-1</td>
! *<tr align=right><td>-1.1</td> <td>-2</td>
! *<tr align=right><td>-1.6</td> <td>-2</td>
! *<tr align=right><td>-2.5</td> <td>-3</td>
! *<tr align=right><td>-5.5</td> <td>-6</td>
*</table>
*/
FLOOR(BigDecimal.ROUND_FLOOR),
/**
--- 174,195 ----
* this rounding mode never increases the calculated value.
*
*<p>Example:
*<table border>
* <caption><b>Rounding mode FLOOR Examples</b></caption>
! *<tr style="vertical-align:top"><th>Input Number</th>
* <th>Input rounded to one digit<br> with {@code FLOOR} rounding
! *<tr style="text-align:right"><td>5.5</td> <td>5</td>
! *<tr style="text-align:right"><td>2.5</td> <td>2</td>
! *<tr style="text-align:right"><td>1.6</td> <td>1</td>
! *<tr style="text-align:right"><td>1.1</td> <td>1</td>
! *<tr style="text-align:right"><td>1.0</td> <td>1</td>
! *<tr style="text-align:right"><td>-1.0</td> <td>-1</td>
! *<tr style="text-align:right"><td>-1.1</td> <td>-2</td>
! *<tr style="text-align:right"><td>-1.6</td> <td>-2</td>
! *<tr style="text-align:right"><td>-2.5</td> <td>-3</td>
! *<tr style="text-align:right"><td>-5.5</td> <td>-6</td>
*</table>
*/
FLOOR(BigDecimal.ROUND_FLOOR),
/**
*** 201,222 ****
* mode commonly taught at school.
*
*<p>Example:
*<table border>
* <caption><b>Rounding mode HALF_UP Examples</b></caption>
! *<tr valign=top><th>Input Number</th>
* <th>Input rounded to one digit<br> with {@code HALF_UP} rounding
! *<tr align=right><td>5.5</td> <td>6</td>
! *<tr align=right><td>2.5</td> <td>3</td>
! *<tr align=right><td>1.6</td> <td>2</td>
! *<tr align=right><td>1.1</td> <td>1</td>
! *<tr align=right><td>1.0</td> <td>1</td>
! *<tr align=right><td>-1.0</td> <td>-1</td>
! *<tr align=right><td>-1.1</td> <td>-1</td>
! *<tr align=right><td>-1.6</td> <td>-2</td>
! *<tr align=right><td>-2.5</td> <td>-3</td>
! *<tr align=right><td>-5.5</td> <td>-6</td>
*</table>
*/
HALF_UP(BigDecimal.ROUND_HALF_UP),
/**
--- 201,222 ----
* mode commonly taught at school.
*
*<p>Example:
*<table border>
* <caption><b>Rounding mode HALF_UP Examples</b></caption>
! *<tr style="vertical-align:top"><th>Input Number</th>
* <th>Input rounded to one digit<br> with {@code HALF_UP} rounding
! *<tr style="text-align:right"><td>5.5</td> <td>6</td>
! *<tr style="text-align:right"><td>2.5</td> <td>3</td>
! *<tr style="text-align:right"><td>1.6</td> <td>2</td>
! *<tr style="text-align:right"><td>1.1</td> <td>1</td>
! *<tr style="text-align:right"><td>1.0</td> <td>1</td>
! *<tr style="text-align:right"><td>-1.0</td> <td>-1</td>
! *<tr style="text-align:right"><td>-1.1</td> <td>-1</td>
! *<tr style="text-align:right"><td>-1.6</td> <td>-2</td>
! *<tr style="text-align:right"><td>-2.5</td> <td>-3</td>
! *<tr style="text-align:right"><td>-5.5</td> <td>-6</td>
*</table>
*/
HALF_UP(BigDecimal.ROUND_HALF_UP),
/**
*** 227,248 ****
* {@code RoundingMode.DOWN}.
*
*<p>Example:
*<table border>
* <caption><b>Rounding mode HALF_DOWN Examples</b></caption>
! *<tr valign=top><th>Input Number</th>
* <th>Input rounded to one digit<br> with {@code HALF_DOWN} rounding
! *<tr align=right><td>5.5</td> <td>5</td>
! *<tr align=right><td>2.5</td> <td>2</td>
! *<tr align=right><td>1.6</td> <td>2</td>
! *<tr align=right><td>1.1</td> <td>1</td>
! *<tr align=right><td>1.0</td> <td>1</td>
! *<tr align=right><td>-1.0</td> <td>-1</td>
! *<tr align=right><td>-1.1</td> <td>-1</td>
! *<tr align=right><td>-1.6</td> <td>-2</td>
! *<tr align=right><td>-2.5</td> <td>-2</td>
! *<tr align=right><td>-5.5</td> <td>-5</td>
*</table>
*/
HALF_DOWN(BigDecimal.ROUND_HALF_DOWN),
/**
--- 227,248 ----
* {@code RoundingMode.DOWN}.
*
*<p>Example:
*<table border>
* <caption><b>Rounding mode HALF_DOWN Examples</b></caption>
! *<tr style="vertical-align:top"><th>Input Number</th>
* <th>Input rounded to one digit<br> with {@code HALF_DOWN} rounding
! *<tr style="text-align:right"><td>5.5</td> <td>5</td>
! *<tr style="text-align:right"><td>2.5</td> <td>2</td>
! *<tr style="text-align:right"><td>1.6</td> <td>2</td>
! *<tr style="text-align:right"><td>1.1</td> <td>1</td>
! *<tr style="text-align:right"><td>1.0</td> <td>1</td>
! *<tr style="text-align:right"><td>-1.0</td> <td>-1</td>
! *<tr style="text-align:right"><td>-1.1</td> <td>-1</td>
! *<tr style="text-align:right"><td>-1.6</td> <td>-2</td>
! *<tr style="text-align:right"><td>-2.5</td> <td>-2</td>
! *<tr style="text-align:right"><td>-5.5</td> <td>-5</td>
*</table>
*/
HALF_DOWN(BigDecimal.ROUND_HALF_DOWN),
/**
*** 260,281 ****
* arithmetic in Java.
*
*<p>Example:
*<table border>
* <caption><b>Rounding mode HALF_EVEN Examples</b></caption>
! *<tr valign=top><th>Input Number</th>
* <th>Input rounded to one digit<br> with {@code HALF_EVEN} rounding
! *<tr align=right><td>5.5</td> <td>6</td>
! *<tr align=right><td>2.5</td> <td>2</td>
! *<tr align=right><td>1.6</td> <td>2</td>
! *<tr align=right><td>1.1</td> <td>1</td>
! *<tr align=right><td>1.0</td> <td>1</td>
! *<tr align=right><td>-1.0</td> <td>-1</td>
! *<tr align=right><td>-1.1</td> <td>-1</td>
! *<tr align=right><td>-1.6</td> <td>-2</td>
! *<tr align=right><td>-2.5</td> <td>-2</td>
! *<tr align=right><td>-5.5</td> <td>-6</td>
*</table>
*/
HALF_EVEN(BigDecimal.ROUND_HALF_EVEN),
/**
--- 260,281 ----
* arithmetic in Java.
*
*<p>Example:
*<table border>
* <caption><b>Rounding mode HALF_EVEN Examples</b></caption>
! *<tr style="vertical-align:top"><th>Input Number</th>
* <th>Input rounded to one digit<br> with {@code HALF_EVEN} rounding
! *<tr style="text-align:right"><td>5.5</td> <td>6</td>
! *<tr style="text-align:right"><td>2.5</td> <td>2</td>
! *<tr style="text-align:right"><td>1.6</td> <td>2</td>
! *<tr style="text-align:right"><td>1.1</td> <td>1</td>
! *<tr style="text-align:right"><td>1.0</td> <td>1</td>
! *<tr style="text-align:right"><td>-1.0</td> <td>-1</td>
! *<tr style="text-align:right"><td>-1.1</td> <td>-1</td>
! *<tr style="text-align:right"><td>-1.6</td> <td>-2</td>
! *<tr style="text-align:right"><td>-2.5</td> <td>-2</td>
! *<tr style="text-align:right"><td>-5.5</td> <td>-6</td>
*</table>
*/
HALF_EVEN(BigDecimal.ROUND_HALF_EVEN),
/**
*** 284,305 ****
* specified on an operation that yields an inexact result, an
* {@code ArithmeticException} is thrown.
*<p>Example:
*<table border>
* <caption><b>Rounding mode UNNECESSARY Examples</b></caption>
! *<tr valign=top><th>Input Number</th>
* <th>Input rounded to one digit<br> with {@code UNNECESSARY} rounding
! *<tr align=right><td>5.5</td> <td>throw {@code ArithmeticException}</td>
! *<tr align=right><td>2.5</td> <td>throw {@code ArithmeticException}</td>
! *<tr align=right><td>1.6</td> <td>throw {@code ArithmeticException}</td>
! *<tr align=right><td>1.1</td> <td>throw {@code ArithmeticException}</td>
! *<tr align=right><td>1.0</td> <td>1</td>
! *<tr align=right><td>-1.0</td> <td>-1</td>
! *<tr align=right><td>-1.1</td> <td>throw {@code ArithmeticException}</td>
! *<tr align=right><td>-1.6</td> <td>throw {@code ArithmeticException}</td>
! *<tr align=right><td>-2.5</td> <td>throw {@code ArithmeticException}</td>
! *<tr align=right><td>-5.5</td> <td>throw {@code ArithmeticException}</td>
*</table>
*/
UNNECESSARY(BigDecimal.ROUND_UNNECESSARY);
// Corresponding BigDecimal rounding constant
--- 284,305 ----
* specified on an operation that yields an inexact result, an
* {@code ArithmeticException} is thrown.
*<p>Example:
*<table border>
* <caption><b>Rounding mode UNNECESSARY Examples</b></caption>
! *<tr style="vertical-align:top"><th>Input Number</th>
* <th>Input rounded to one digit<br> with {@code UNNECESSARY} rounding
! *<tr style="text-align:right"><td>5.5</td> <td>throw {@code ArithmeticException}</td>
! *<tr style="text-align:right"><td>2.5</td> <td>throw {@code ArithmeticException}</td>
! *<tr style="text-align:right"><td>1.6</td> <td>throw {@code ArithmeticException}</td>
! *<tr style="text-align:right"><td>1.1</td> <td>throw {@code ArithmeticException}</td>
! *<tr style="text-align:right"><td>1.0</td> <td>1</td>
! *<tr style="text-align:right"><td>-1.0</td> <td>-1</td>
! *<tr style="text-align:right"><td>-1.1</td> <td>throw {@code ArithmeticException}</td>
! *<tr style="text-align:right"><td>-1.6</td> <td>throw {@code ArithmeticException}</td>
! *<tr style="text-align:right"><td>-2.5</td> <td>throw {@code ArithmeticException}</td>
! *<tr style="text-align:right"><td>-5.5</td> <td>throw {@code ArithmeticException}</td>
*</table>
*/
UNNECESSARY(BigDecimal.ROUND_UNNECESSARY);
// Corresponding BigDecimal rounding constant
< prev index next >