1. 程式人生 > 實用技巧 >Java中的BigDecimal應用

Java中的BigDecimal應用

測試1

 1  String dataStr="2.222";
 2         //1、去掉多餘的位數
 3         BigDecimal data=new BigDecimal(dataStr).setScale(2, RoundingMode.DOWN);
 4         System.out.println("RoundingMode.DOWN:"+data);
 5         //2、進位處理
 6         BigDecimal data1=new BigDecimal(dataStr).setScale(2,RoundingMode.UP);
 7         System.out.println("RoundingMode.UP:"+data1);
8 //3、天花板向上,正數進位向上,負數舍位向上 9 BigDecimal data2=new BigDecimal(dataStr).setScale(2,RoundingMode.CEILING); 10 System.out.println("RoundingMode.CEILING:"+data2); 11 //4、地板向下,正數舍位向下,負數進位向下 12 BigDecimal data3=new BigDecimal(dataStr).setScale(2,RoundingMode.FLOOR); 13 System.out.println("RoundingMode.FLOOR:"+data3);
14 //5、四捨五入 15 BigDecimal data4=new BigDecimal(dataStr).setScale(2,RoundingMode.HALF_UP); 16 System.out.println("RoundingMode.HALF_UP:"+data4); 17 //6、 18 BigDecimal data5=new BigDecimal(dataStr).setScale(2,RoundingMode.HALF_DOWN); 19 System.out.println("RoundingMode.HALF_DOWN:"+data5);
20 //7、 21 BigDecimal data6=new BigDecimal(dataStr).setScale(2,RoundingMode.HALF_EVEN); 22 System.out.println("RoundingMode.HALF_EVEN:"+data5); 23 //8、報異常 24 BigDecimal data7=new BigDecimal(dataStr).setScale(2,RoundingMode.UNNECESSARY); 25 System.out.println("RoundingMode.UNNECESSARY:"+data7);

執行結果1:

測試2

 1    String dataStr="2.226";
 2         //1、去掉多餘的位數
 3         BigDecimal data=new BigDecimal(dataStr).setScale(2, RoundingMode.DOWN);
 4         System.out.println("RoundingMode.DOWN:"+data);
 5         //2、進位處理
 6         BigDecimal data1=new BigDecimal(dataStr).setScale(2,RoundingMode.UP);
 7         System.out.println("RoundingMode.UP:"+data1);
 8         //3、天花板向上,正數進位向上,負數舍位向上
 9         BigDecimal data2=new BigDecimal(dataStr).setScale(2,RoundingMode.CEILING);
10         System.out.println("RoundingMode.CEILING:"+data2);
11         //4、地板向下,正數舍位向下,負數進位向下
12         BigDecimal data3=new BigDecimal(dataStr).setScale(2,RoundingMode.FLOOR);
13         System.out.println("RoundingMode.FLOOR:"+data3);
14         //5、四捨五入
15         BigDecimal data4=new BigDecimal(dataStr).setScale(2,RoundingMode.HALF_UP);
16         System.out.println("RoundingMode.HALF_UP:"+data4);
17         //6、
18         BigDecimal data5=new BigDecimal(dataStr).setScale(2,RoundingMode.HALF_DOWN);
19         System.out.println("RoundingMode.HALF_DOWN:"+data5);
20         //7、
21         BigDecimal data6=new BigDecimal(dataStr).setScale(2,RoundingMode.HALF_EVEN);
22         System.out.println("RoundingMode.HALF_EVEN:"+data5);
23         //8、報異常
24         BigDecimal data7=new BigDecimal(dataStr).setScale(2,RoundingMode.UNNECESSARY);
25         System.out.println("RoundingMode.UNNECESSARY:"+data7);

執行結果2