BigDecimal怎么保留两位小数?Double String 和BigDecimal之间怎么转换?

发布于 2019-08-12 11:25:26
  1. BigDecimal怎么保留两位小数?
  2. Double和String 和BigDecimal之间怎么转换?

查看更多

关注者
0
被浏览
182
申来来
申来来 认证专家 2019-08-13
年轻是本钱,但不努力就不值钱

BigDecimal保留两位小数问题:

  1. 方法一
        DecimalFormat df = new DecimalFormat("#.00");
        //df.format("你要格式化的数字");
        // 例如(四舍五入保留两位小数)   
        System.out.println(df.format(1.223));
        // 输出的结果是1.22  #.00 表示两位小数 #.0000四位小数 以此类推...
  1. 方式二(四舍五入形式保留两位小数,注意模式ROUND_HALF_UP)
        BigDecimal num1 = new BigDecimal(1.225333333);
        BigDecimal a1 = num1.setScale(2,BigDecimal.ROUND_HALF_UP);
        System.out.println(a1);
        // 输出1.23
        /**
         * BigDecimal.ROUND_HALF_UP: 向“最接近的”数字舍入,
         * 如果与两个相邻数字的距离相等,则为向上舍入的舍入模式 
         * 如果想保留3位,把2替换为3即可
         */
  1. BigDecimal转String
        BigDecimal num = new BigDecimal(1.225333333);
        String.valueOf(num);   // 方法一
        num.toString();   // 方法二
  1. String转BigDecimal
        String num = "1.00";
        BigDecimal num2 = new BigDecimal(num);
        // 如果是double/int类型 还可以这样转
        Double num3 = 1.00;
        BigDecimal num4 = BigDecimal.valueOf(num3);
1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览