- java.lang.Object
-
- java.lang.Enum<RoundingMode>
-
- java.math.RoundingMode
-
- All Implemented Interfaces:
-
Serializable,Comparable<RoundingMode>
public enum RoundingMode extends Enum<RoundingMode>
指定能够丢弃精度的数值运算的舍入行为 。 每个舍入模式指示如何计算舍入结果的最低有效返回数字。 如果返回的数字少于表示确切数值结果所需的数字,则丢弃的数字将被称为丢弃的分数,而不管数字对数字值的贡献。 换句话说,被考虑为数值,被丢弃的分数可以具有大于1的绝对值。每个舍入模式描述包括一个表,列出了在所讨论的四舍五入模式下,不同的两位十进制值将如何舍入一位数十进制值。 表中的结果列可以通过创建具有指定值的
Summary of Rounding Operations Under Different Rounding Modes Result of rounding input to one digit with the given rounding mode Input NumberBigDecimal号码获得,形成一个具有适当设置的MathContext对象(precision设置为1,而roundingMode设置为相关舍入模式),并在此处调用round数字与正确的MathContext。 显示所有舍入模式的这些舍入操作的结果的汇总表如下所示。UPDOWNCEILINGFLOORHALF_UPHALF_DOWNHALF_EVENUNNECESSARY5.5 6 5 6 5 6 5 6 throwArithmeticException2.5 3 2 3 2 3 2 2 throwArithmeticException1.6 2 1 2 1 2 2 2 throwArithmeticException1.1 2 1 2 1 1 1 1 throwArithmeticException1.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 throwArithmeticException-1.6 -2 -1 -1 -2 -2 -2 -2 throwArithmeticException-2.5 -3 -2 -2 -3 -3 -2 -2 throwArithmeticException-5.5 -6 -5 -5 -6 -6 -5 -6 throwArithmeticException此
枚举旨在替换在舍入模式常量的基于整数的枚举BigDecimal(BigDecimal.ROUND_UP,BigDecimal.ROUND_DOWN,等等)。- 从以下版本开始:
- 1.5
- 另请参见:
-
BigDecimal,MathContext
-
-
Enum Constant Summary
Enum Constants Enum Constant 描述 CEILING圆形模式向正无穷大转弯。DOWN舍入模式向零舍入。FLOOR舍入模式向负无穷大转弯。HALF_DOWN四舍五入模式向“最近邻居”转弯,除非这两个邻居都是等距离的,在这种情况下,这是倒圆的。HALF_EVEN四舍五入模式向“最近邻居”转弯,除非这两个邻居都是等距离的,在这种情况下,朝向偶数邻居。HALF_UP四舍五入模式向“最近邻居”转弯,除非两个邻居都是等距的,在这种情况下是圆括弧的。UNNECESSARY舍入模式来确定所请求的操作具有精确的结果,因此不需要舍入。UP舍入模式从零开始。
-
方法摘要
所有方法 静态方法 具体的方法 Modifier and Type 方法 描述 static RoundingModevalueOf(int rm)返回RoundingMode对应于遗留整数舍入模式恒定对象BigDecimal。static RoundingModevalueOf(String name)以指定的名称返回此类型的枚举常量。static RoundingMode[]values()按照它们声明的顺序返回一个包含此枚举类型常量的数组。
-
-
-
Enum Constant Detail
-
UP
public static final RoundingMode UP
舍入模式从零开始。 始终在非零丢弃分数之前增加数字。 请注意,该舍入模式不会降低计算值的大小。例:
Rounding mode UP Examples Input Number Input rounded to one digit
withUProunding 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
舍入模式向零舍入。 不要在丢弃的分数之前递增数字(即截断)。 请注意,该舍入模式不会增加计算值的大小。例:
Rounding mode DOWN Examples Input Number Input rounded to one digit
withDOWNrounding 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
-
CEILING
public static final RoundingMode CEILING
圆形模式向正无穷大转弯。 如果结果为正,则表现为RoundingMode.UP; 如果为负,表现为RoundingMode.DOWN。 请注意,舍入模式不会降低计算值。例:
Rounding mode CEILING Examples Input Number Input rounded to one digit
withCEILINGrounding 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。 请注意,舍入模式不会增加计算值。例:
Rounding mode FLOOR Examples Input Number Input rounded to one digit
withFLOORrounding 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.UP; 否则,表现为RoundingMode.DOWN。 请注意,这是通常在学校教授的舍入模式。例:
Rounding mode HALF_UP Examples Input Number Input rounded to one digit
withHALF_UProunding 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
四舍五入模式向“最近邻居”转弯,除非这两个邻居都是等距离的,在这种情况下,这是倒圆的。 如果丢弃的分数> 0.5,则表示为RoundingMode.UP; 否则,表现为RoundingMode.DOWN。例:
Rounding mode HALF_DOWN Examples Input Number Input rounded to one digit
withHALF_DOWNrounding 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如果它是RoundingMode.HALF_DOWN行为。 请注意,这是舍入模式,统计最小化在一系列计算中重复应用时的累积误差。 有时被称为“银行家四舍五入”,主要用于美国。 这种舍入模式类似于Java中用于float和double算术的舍入策略。例:
Rounding mode HALF_EVEN Examples Input Number Input rounded to one digit
withHALF_EVENrounding 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
-
UNNECESSARY
public static final RoundingMode UNNECESSARY
舍入模式来确定所请求的操作具有精确的结果,因此不需要舍入。 如果在产生不精确结果的操作上指定了舍入模式,则抛出ArithmeticException。例:
Rounding mode UNNECESSARY Examples Input Number Input rounded to one digit
withUNNECESSARYrounding 5.5 throwArithmeticException2.5 throwArithmeticException1.6 throwArithmeticException1.1 throwArithmeticException1.0 1 -1.0 -1 -1.1 throwArithmeticException-1.6 throwArithmeticException-2.5 throwArithmeticException-5.5 throwArithmeticException
-
-
方法详细信息
-
values
public static RoundingMode[] values()
按照它们声明的顺序返回一个包含此枚举类型常量的数组。 该方法可用于遍历常量如下:for (RoundingMode c : RoundingMode.values()) System.out.println(c);- 结果
- 一个包含这个枚举类型的常量的数组,按照它们被声明的顺序
-
valueOf
public static RoundingMode valueOf(String name)
以指定的名称返回此类型的枚举常量。 字符串必须完全匹配用于声明此类型的枚举常量的标识符。 (不允许使用外来空白字符。)- 参数
-
name- 要返回的枚举常数的名称。 - 结果
- 具有指定名称的枚举常数
- 异常
-
IllegalArgumentException- 如果此枚举类型没有指定名称的常量 -
NullPointerException- 如果参数为空
-
valueOf
public static RoundingMode valueOf(int rm)
返回对应于RoundingMode中的遗留整数舍入模式常量的RoundingMode对象 。- 参数
-
rm- 传统整数舍入模式进行转换 - 结果
-
RoundingMode对应于给定的整数。 - 异常
-
IllegalArgumentException- 整数超出范围
-
-