美文网首页
金额展示处理工具类

金额展示处理工具类

作者: 初见soulmate | 来源:发表于2020-10-28 11:14 被阅读0次
    
    import android.text.TextUtils;
    
    import java.math.BigDecimal;
    
    
    public class BigDecimalUtils {
        /**
         * 除法
         */
        public static BigDecimal divide(String arg1, String arg2) {
            if (TextUtils.isEmpty(arg1)) {
                arg1 = "0.0";
            }
            if (TextUtils.isEmpty(arg2)) {
                arg2 = "0.0";
            }
            BigDecimal big3 = new BigDecimal("0.00");
            if (Double.parseDouble(arg2) != 0) {
                BigDecimal big1 = new BigDecimal(arg1);
                BigDecimal big2 = new BigDecimal(arg2);
                big3 = big1.divide(big2, 2, BigDecimal.ROUND_HALF_EVEN);
            }
            return big3;
        }
    
        /**
         * 乘法
         */
        public static BigDecimal mul(String arg1, String arg2) {
            if (TextUtils.isEmpty(arg1)) {
                arg1 = "0.0";
            }
            if (TextUtils.isEmpty(arg2)) {
                arg2 = "0.0";
            }
            BigDecimal big1 = new BigDecimal(arg1);
            BigDecimal big2 = new BigDecimal(arg2);
            BigDecimal big3 = big1.multiply(big2);
            return big3;
        }
    
        /**
         * 乘法
         */
        public static BigDecimal mul(double arg1, double arg2) {
            BigDecimal big1 = new BigDecimal(arg1);
            BigDecimal big2 = new BigDecimal(arg2);
            return big1.multiply(big2);
        }
    
        /**
         * 减法
         */
        public static BigDecimal sub(String arg1, String arg2) {
            if (TextUtils.isEmpty(arg1)) {
                arg1 = "0.0";
            }
            if (TextUtils.isEmpty(arg2)) {
                arg2 = "0.0";
            }
            BigDecimal big1 = new BigDecimal(arg1);
            BigDecimal big2 = new BigDecimal(arg2);
            BigDecimal big3 = big1.subtract(big2);
            return big3;
        }
    
        /**
         * 加法
         */
        public static BigDecimal add(String arg1, String arg2) {
            if (TextUtils.isEmpty(arg1)) {
                arg1 = "0.0";
            }
            if (TextUtils.isEmpty(arg2)) {
                arg2 = "0.0";
            }
            BigDecimal big1 = new BigDecimal(arg1);
            BigDecimal big2 = new BigDecimal(arg2);
            BigDecimal big3 = big1.add(big2);
            return big3;
        }
    
        public static BigDecimal add(double arg1, double arg2) {
            BigDecimal big1 = new BigDecimal(arg1);
            BigDecimal big2 = new BigDecimal(arg2);
            BigDecimal big3 = big1.add(big2);
            return big3;
        }
    
        public static BigDecimal add(BigDecimal arg1, double arg2) {
            BigDecimal big2 = new BigDecimal(arg2);
            BigDecimal big3 = arg1.add(big2);
            return big3;
        }
    
        /**
         * 加法
         */
        public static String add2(String arg1, String arg2) {
            if (TextUtils.isEmpty(arg1)) {
                arg1 = "0.0";
            }
            if (TextUtils.isEmpty(arg2)) {
                arg2 = "0.0";
            }
            BigDecimal big1 = new BigDecimal(arg1);
            BigDecimal big2 = new BigDecimal(arg2);
            BigDecimal big3 = big1.add(big2);
            return big3.toString();
        }
    
        /**
         * 四舍五入保留N位小数 先四舍五入在使用double值自动去零
         *
         * @param scare 保留位数
         */
        public static String setScare(BigDecimal arg, int scare) {
            BigDecimal bl = arg.setScale(scare, BigDecimal.ROUND_HALF_UP);
            return String.valueOf(bl.doubleValue());
        }
    
        public static double setDifScare(double arg) {
            BigDecimal bd = new BigDecimal(arg);
            BigDecimal bl = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
            return Double.parseDouble(bl.toString());
        }
    
        /**
         * 四舍五入保留两位小数 先四舍五入在使用double值自动去零
         */
        public static String setDifScare(String arg) {
            BigDecimal bd = new BigDecimal(arg);
            BigDecimal bl = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
            return bl.toString();
        }
    
        /**
         * 四舍五入保留N位小数 先四舍五入在使用double值自动去零(传参String类型)
         */
        public static String setDifScare(String arg, int i) {
            BigDecimal bd = new BigDecimal(arg);
            BigDecimal bl = bd.setScale(i, BigDecimal.ROUND_HALF_UP);
            return bl.toString();
        }
        /**
         * 四舍五入保留N位小数 先四舍五入在使用double值自动去零(传参double类型)
         */
        public static String setDifScare(double arg, int i) {
            BigDecimal bd = new BigDecimal(arg);
            BigDecimal bl = bd.setScale(i, BigDecimal.ROUND_HALF_UP);
            return bl.toString();
        }
        /**
         * 四舍五入保留N位小数 先四舍五入在使用double值自动去零(传参BigDecimal类型)
         */
        public static String setDifScare(BigDecimal bd, int i) {
            BigDecimal bl = bd.setScale(i, BigDecimal.ROUND_HALF_UP);
            return bl.toString();
        }
    
        /**
         * 转化成百分数 先四舍五入在使用double值自动去零
         */
        public static String setFenScare(BigDecimal arg) {
            BigDecimal bl = arg.setScale(3, BigDecimal.ROUND_HALF_UP);
            String scare = String.valueOf(mul(bl.toString(), "100").doubleValue());
            String fenScare = scare + "%";
            return fenScare;
        }
    
        /**
         * 使用java正则表达式去掉多余的.与0
         */
        public static String subZeroAndDot(String s) {
            if (s.indexOf(".") > 0) {
                // 去掉多余的0
                s = s.replaceAll("0+?$", "");
                // 如最后一位是.则去掉
                s = s.replaceAll("[.]$", "");
            }
            return s;
        }
    }
    
    
    
    
    
    

    相关文章

      网友评论

          本文标题:金额展示处理工具类

          本文链接:https://www.haomeiwen.com/subject/xcuqvktx.html