指定能够丢弃精度的数值运算的舍入行为 。
每个舍入模式指示如何计算舍入结果的最低有效返回数字。
如果返回的数字少于表示精确数字结果所需的数字,则丢弃的数字将被称为丢弃的部分,而不管数字对数字值的贡献。
换句话说,被认为是数值,丢弃的部分可以具有大于1的绝对值。
每个舍入模式描述包括一个表,该表列出了在所讨论的舍入模式下不同的两位十进制值如何舍入到一位十进制值。 可以通过创建具有指定值的BigDecimal数字来获取表中的结果列,使用正确的设置形成MathContext对象( precision设置为1 ,并将roundingMode设置为相关的舍入模式),并在此处调用round号码与正确的MathContext 。 显示所有舍入模式的舍入操作结果的汇总表如下所示。
Summary of Rounding Operations Under Different Rounding ModesInput Number Result of rounding input to one digit with the given rounding mode 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
返回RoundingMode对应于传统整数舍入模式常量的RoundingMode对象 。
返回具有指定名称的此类型的枚举常量。
按照声明的顺序返回一个包含此枚举类型常量的数组。
舍入模式从零开始舍入。
始终在非零丢弃分数之前递增数字。
请注意,此舍入模式决不会降低计算值的大小。
例:
Rounding mode UP ExamplesInput Number Input rounded to one digit
with UP rounding5.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
舍入模式向零舍入。
切勿在丢弃的分数之前递增数字(即截断)。
请注意,此舍入模式永远不会增加计算值的大小。
例:
Rounding mode DOWN ExamplesInput Number Input rounded to one digit
with DOWN rounding5.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
舍入模式向正无穷大舍入。
如果结果为正,则表现为RoundingMode.UP ;
如果为负,则表现为RoundingMode.DOWN 。
请注意,此舍入模式永远不会减少计算值。
例:
Rounding mode CEILING ExamplesInput Number Input rounded to one digit
with CEILING rounding5.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
舍入模式向负无穷大舍入。
如果结果为正,则表现为RoundingMode.DOWN ;
如果是否定的,则表现为RoundingMode.UP 。
请注意,此舍入模式永远不会增加计算值。
例:
Rounding mode FLOOR ExamplesInput Number Input rounded to one digit
with FLOOR rounding5.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
舍入模式向“最近邻居”舍入,除非两个邻居等距,在这种情况下向上舍入。
如果丢弃的部分RoundingMode.UP则表现为RoundingMode.UP ;
否则,表现为RoundingMode.DOWN 。
请注意,这是学校常用的舍入模式。
例:
Rounding mode HALF_UP ExamplesInput Number Input rounded to one digit
with HALF_UP rounding5.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
舍入模式向“最近邻居”舍入,除非两个邻居等距,在这种情况下向下舍入。
如果丢弃的部分> 0.5,则表现为RoundingMode.UP ;
否则,表现为RoundingMode.DOWN 。
例:
Rounding mode HALF_DOWN ExamplesInput Number Input rounded to one digit
with HALF_DOWN rounding5.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
舍入模式向“最近邻居”舍入,除非两个邻居等距,在这种情况下,向着偶邻居舍入。
如果丢弃的分数左边的数字是奇数,则表现为RoundingMode.HALF_UP ;
如果它是偶数,则表现为RoundingMode.HALF_DOWN 。
请注意,这是在一系列计算中重复应用时统计上最小化累积误差的舍入模式。
它有时被称为“银行家的四舍五入”,主要用于美国。
此舍入模式类似于Java中用于float和double算术的舍入策略。
例:
Rounding mode HALF_EVEN ExamplesInput Number Input rounded to one digit
with HALF_EVEN rounding5.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
舍入模式断言所请求的操作具有精确结果,因此不需要舍入。
如果在产生不精确结果的操作上指定了此舍入模式,则抛出ArithmeticException 。
例:
Rounding mode UNNECESSARY ExamplesInput Number Input rounded to one digit
with UNNECESSARY rounding5.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
按照声明的顺序返回一个包含此枚举类型常量的数组。
此方法可用于迭代常量,如下所示:
for (RoundingMode c : RoundingMode.values())
System.out.println(c);
返回具有指定名称的此类型的枚举常量。
该字符串必须与用于声明此类型中的枚举常量的标识符完全匹配。
(不允许使用无关的空白字符。)
返回RoundingMode对应于传统整数舍入模式常量的RoundingMode对象 。
Enum Constants
Enum Constant
描述
舍入模式向正无穷大舍入。
舍入模式向零舍入。
舍入模式向负无穷大舍入。
舍入模式向“最近邻居”舍入,除非两个邻居等距,在这种情况下向下舍入。
舍入模式向“最近邻居”舍入,除非两个邻居等距,在这种情况下,向着偶邻居舍入。
舍入模式向“最近邻居”舍入,除非两个邻居等距,在这种情况下向上舍入。
舍入模式断言所请求的操作具有精确结果,因此不需要舍入。
舍入模式从零开始舍入。变量和类型
方法
描述
返回RoundingMode对应于传统整数舍入模式常量的RoundingMode对象 。
返回具有指定名称的此类型的枚举常量。
按照声明的顺序返回一个包含此枚举类型常量的数组。