Bigdecimal基本运算及小数保留方式枚举
生活随笔
收集整理的這篇文章主要介紹了
Bigdecimal基本运算及小数保留方式枚举
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Bigdecimal基本運算及小數保留方式枚舉
1.Bigdecimal運算
final BigDecimal a = new BigDecimal("2.99"); final BigDecimal b = BigDecimal.valueOf(0.49); //a+b final BigDecimal add = a.add(b); //a-b final BigDecimal subtract = a.subtract(b); //a*b final BigDecimal multiply = a.multiply(b); //a/b 保留4位小數 四舍五入 final BigDecimal divide = a.divide(b,4,BigDecimal.ROUND_HALF_EVEN); System.out.println("a+b= "+add); //輸出 3.48 System.out.println("a-b= "+subtract); //輸出 2.50 System.out.println("a*b= "+multiply); //輸出 1.4651 System.out.println("a/b= "+divide); //輸出 6.10202.Bigdecimal小數保留方式
final BigDecimal a = new BigDecimal("1.5"); //進 結果:2 System.out.println(a.setScale(0,BigDecimal.ROUND_UP)); //舍 結果:1 System.out.println(a.setScale(0,BigDecimal.ROUND_DOWN)); //向下取整 結果:1 System.out.println(a.setScale(0,BigDecimal.ROUND_FLOOR)); //向上取整 結果:2 System.out.println(a.setScale(0,BigDecimal.ROUND_CEILING)); //四舍五入 結果:2 System.out.println(a.setScale(0,BigDecimal.ROUND_HALF_UP)); //五舍六入 結果:1 System.out.println(a.setScale(0,BigDecimal.ROUND_HALF_DOWN)); //銀行家舍入 四舍六入五考慮 // A =>五后無數字進1 // B => 五后有數字 // B1 => 五后非零就進一, // B2 => 五后為零看五前奇偶,偶舍,奇進 System.out.println(BigDecimal.valueOf(1.5).setScale(0,BigDecimal.ROUND_HALF_EVEN)); //2 System.out.println(BigDecimal.valueOf(1.51).setScale(0,BigDecimal.ROUND_HALF_EVEN)); //2 System.out.println(BigDecimal.valueOf(1.59).setScale(0,BigDecimal.ROUND_HALF_EVEN)); //2 System.out.println(BigDecimal.valueOf(1.50).setScale(0,BigDecimal.ROUND_HALF_EVEN)); //2 System.out.println(BigDecimal.valueOf(2.50).setScale(0,BigDecimal.ROUND_HALF_EVEN)); //2注:使用參數為float或double的BigDecimal創建對象會丟失精度。建議不要使用參數為float或double的BigDecimal創建對象。而是采用string字符串來創建對象
總結
以上是生活随笔為你收集整理的Bigdecimal基本运算及小数保留方式枚举的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【算法】旋转数组【LeetCode】
- 下一篇: oracle 11g 数据库cmd修改用