< 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 >