简介
java.math.RoundingMode 枚举指定了能够丢弃精度的数值运算的舍入行为.每个舍入模式指示如何计算舍入结果的最低有效返回数字.
如果返回的数字少于表示精确数字结果所需的数字,则丢弃的数字将无论数字对数字值的贡献如何,都被称为丢弃的部分.换句话说,被认为是一个数值,丢弃的分数可能具有大于1的绝对值.
此枚举旨在替换BigDecimal中舍入模式常量的基于整数的枚举(BigDecimal.ROUND_UP,BigDecimal.ROUND_DOWN等).
枚举声明
以下是 java.math.RoundingMode的声明 enum :
public enum RoundingMode extends Enum
常数
以下是 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() 此方法按照声明的顺序返回一个包含此枚举类型常量的数组. |
示例
以下示例显示了math.RoundingMode方法的用法.
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_DOWNEnum constant for string UP is UPEnum constants of RoundingMode in order are :UPDOWNCEILINGFLOORHALF_UPHALF_DOWNHALF_EVENUNNECESSARY