Java.math.RoundingMode 枚举
简介
java.math.RoundingMode 枚举为能够丢弃精度的数值运算指定舍入行为。 每种舍入模式指示如何计算舍入结果的最低有效位。
如果返回的数字少于表示精确数字结果所需的数字,则丢弃的数字将被称为丢弃的分数,而不管这些数字对数字值的贡献。 换言之,作为一个数值,被丢弃的分数的绝对值可能大于一。
此枚举旨在替换 BigDecimal 中舍入模式常量的基于整数的枚举(BigDecimal.ROUND_UP、BigDecimal.ROUND_DOWN 等)。
枚举声明
以下是 java.math.RoundingMode 枚举的声明 −
public enum RoundingMode extends Enum<RoundingMode>
常量
以下是 java.math.RoundingMode 枚举的常量−
CEILING − 舍入模式向正无穷大舍入。
DOWN − 舍入模式向零舍入。
FLOOR − 舍入模式向负无穷大舍入。
HALF_DOWN − 舍入模式向"最近的邻居"舍入,除非两个邻居是等距的,在这种情况下向下舍入。
HALF_EVEN − 舍入模式向"最近的邻居"舍入,除非两个邻居是等距的,在这种情况下,向偶数邻居舍入。
HALF_UP − 舍入模式向"最近的邻居"舍入,除非两个邻居是等距的,在这种情况下向上舍入。
UNNECESSARY − 舍入模式断言请求的操作具有精确的结果,因此不需要舍入。
向上 − 舍入模式从零舍入。
枚举方法
序号 | 方法 & 描述 |
---|---|
1 | static RoundingMode valueOf(int rm) 此方法返回与 BigDecimal 中的旧整数舍入模式常量对应的 RoundingMode 对象。 |
2 | static RoundingMode valueOf(String name) 该方法返回具有指定名称的该类型的枚举常量。 |
3 | static RoundingMode[ ] values() 此方法返回一个数组,其中包含此枚举类型的常量,按声明的顺序排列。 |
示例
以下示例显示了 math.RoundingMode 方法的用法。
package com.tutorialspoint; 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