Enumerations
介绍 (Introduction)
java.math.RoundingMode枚举指定了能够丢弃精度的数值运算的舍入行为。 每个舍入模式指示如何计算舍入结果的最低有效返回数字。
如果返回的数字少于表示精确数字结果所需的数字,则丢弃的数字将被称为丢弃的部分,而不管数字对数字值的贡献。 换句话说,被认为是数值,丢弃的部分可以具有大于1的绝对值。
此枚举旨在替换BigDecimal中的舍入模式常量的基于整数的枚举(BigDecimal.ROUND_UP,BigDecimal.ROUND_DOWN等)。
枚举声明
以下是java.math.RoundingMode枚举的声明 -
public enum RoundingMode
extends Enum<RoundingMode>
Constants
以下是java.math.RoundingMode枚举的常量 -
CEILING - 舍入模式向正无穷大舍入。
DOWN - 舍入模式向零舍入。
FLOOR - 舍入模式向负无穷大舍入。
HALF_DOWN - 舍入模式向“最近邻居”舍入,除非两个邻居都是等距的,在这种情况下向下舍入。
HALF_EVEN - 舍入模式向“最近邻居”舍入,除非两个邻居都是等距的,在这种情况下,向着偶数邻居舍入。
HALF_UP - 舍入模式向“最近邻居”舍入,除非两个邻居等距,在这种情况下向上舍入。
UNNECESSARY - 舍入模式断言请求的操作具有确切的结果,因此不需要舍入。
UP - 舍入模式从零开始舍入。
枚举方法
Sr.No. | 方法和描述 |
---|---|
1 | static RoundingMode valueOf(int rm) 此方法返回与BigDecimal中的传统整数舍入模式常量对应的RoundingMode对象。 |
2 | static RoundingMode valueOf(String name) 此方法返回具有指定名称的此类型的枚举常量。 |
3 | static RoundingMode[ ] values() 此方法按照声明的顺序返回一个包含此枚举类型常量的数组。 |
例子 (Example)
以下示例显示了math.RoundingMode方法的用法。
package cn.xnip;
import java.math.*;
public class RoundingModeDemo {
public static void main(String[] args) {
// create 2 RoundingMode objects
RoundingMode rm1, rm2;
// create and assign values to rm and name
int rm = 5;
String name = "UP";
// static methods are called using enum name
// assign the the enum constant of rm to rm1
rm1 = RoundingMode.valueOf(rm);
// assign the the enum constant of name to rm2
rm2 = RoundingMode.valueOf(name);
String str1 = "Enum constant for integer " + rm + " is " +rm1;
String str2 = "Enum constant for string " + name + " is " +rm2;
// print rm1, rm2 values
System.out.println( str1 );
System.out.println( str2 );
String str3 = "Enum constants of RoundingMode in order are :";
System.out.println( str3 );
// print the array of enum constatnts using for loop
for (RoundingMode c : RoundingMode.values())
System.out.println(c);
}
}
让我们编译并运行上面的程序,这将产生以下结果 -
Enum constant for integer 5 is HALF_DOWN
Enum constant for string UP is UP
Enum constants of RoundingMode in order are :
UP
DOWN
CEILING
FLOOR
HALF_UP
HALF_DOWN
HALF_EVEN
UNNECESSARY