数字的舍入

 1 package com.jdk7.chapter3;
 2 
 3 import java.math.BigDecimal;
 4 
 5 public class Round {
 6     //调用java.util.Math进行四舍五入取整
 7     public static long getRoundMath(double dou){
 8         return Math.round(dou);
 9     }
10     
11     //调用java.math.BigDecimal进行不同类别的舍入
12     public static BigDecimal getRoundBigDecimal(double dou, int point, int type){
13         BigDecimal bd = new BigDecimal(dou);
14         return bd.setScale(point, type);
15     }
16     
17     /**
18      * 在BigDecimal类中定义了不同舍入方式的值如下:
19      * public final static int ROUND_UP =           0;        //远离0的舍入
20      * public final static int ROUND_DOWN =         1;        //接近0的舍入
21      * public final static int ROUND_CEILING =      2;        //接近正无穷大的舍入
22      * public final static int ROUND_FLOOR =        3;        //接近负无穷大的舍入
23      * public final static int ROUND_HALF_UP =      4;        //四舍五入
24      * public final static int ROUND_HALF_DOWN =    5;        //向最接近的数字舍入,如果与两个相邻的数字相等,则为ROUND_DOWN模式
25      * public final static int ROUND_HALF_EVEN =    6;        //向最接近的数字舍入,如果与两个相邻的数字相等,则向相邻的偶数舍入
26      * public final static int ROUND_UNNECESSARY =  7;
27      * 
28      * @param args
29      */
30     public static void main(String[] args) {
31         double dou = 345.987;
32         System.out.println(getRoundMath(dou));
33         System.out.println(getRoundBigDecimal(dou,0,0));
34         System.out.println(getRoundBigDecimal(dou,0,1));
35         System.out.println(getRoundBigDecimal(dou,0,2));
36         System.out.println(getRoundBigDecimal(dou,0,3));
37         System.out.println(getRoundBigDecimal(dou,0,4));
38         System.out.println(getRoundBigDecimal(dou,0,5));
39         System.out.println(getRoundBigDecimal(dou,0,6));
40     }
41 }
42 
43 执行结果:
44 346
45 346
46 345
47 346
48 345
49 346
50 346
51 346

 

posted @ 2018-01-16 22:16  celineluo  阅读(218)  评论(0编辑  收藏  举报