• 工具类-格式化小数


    import java.math.BigDecimal;
    import java.text.DecimalFormat;
    
    /**
     * ClassName: NumUtil<br/>
     * Description: <br/>
     * date: 2018/8/31 下午4:18<br/>
     *
     * @author chengluchao
     * @since JDK 1.8
     */
    
    public abstract class NumUtil {
        static final String FORMAT2STR = "0.00";
        static final String FORMAT8STR = "0.00000000";
        static final DecimalFormat df2 = new DecimalFormat(FORMAT2STR);
        static final DecimalFormat df8 = new DecimalFormat(FORMAT8STR);
    
    
        /**
         * 格式化小数
         *
         * @param num
         * @return
         */
        public static BigDecimal parseDouble(String num) {
            if (StrUtils.isEmpty(num))
                return new BigDecimal(0.0);
            return new BigDecimal(num);
        }
    
        /**
         * 格式化小数,可以为空
         *
         * @param num
         * @return
         */
        public static BigDecimal parseDoubleHaveNull(String num) {
            if (StrUtils.isEmpty(num))
                return null;
            return new BigDecimal(num);
        }
    
        /**
         * 格式化小数-double
         *
         * @param num
         * @return
         */
        public static double parseDoubleTrue(String num) {
            if (StrUtils.isEmpty(num))
                return 0.0;
            return Double.parseDouble(num);
        }
    
        /**
         * 转小数,保留2位
         *
         * @param num
         * @return
         */
        public static BigDecimal StrTo2Double(String num) {
            if (StrUtils.isEmpty(num))
                num = FORMAT2STR;
            return new BigDecimal(num).setScale(2, java.math.BigDecimal.ROUND_HALF_UP);
        }
    
        /**
         * 转小数,保留3位
         *
         * @param num
         * @return
         */
        public static BigDecimal StrTo3Double(String num) {
            if (StrUtils.isEmpty(num))
                num = "0.000";
            return new BigDecimal(num).setScale(3, java.math.BigDecimal.ROUND_HALF_UP);
        }
    
        /**
         * 转小数,保留8位
         *
         * @param num
         * @return
         */
        public static BigDecimal StrTo8Double(String num) {
            if (StrUtils.isEmpty(num))
                num = FORMAT8STR;
            return new BigDecimal(num).setScale(8, java.math.BigDecimal.ROUND_HALF_UP);
        }
    
        /**
         * 格式化数字
         *
         * @param num
         * @return
         */
        public static int parseInt(String num) {
            if (StrUtils.isEmpty(num))
                return 0;
            return Integer.parseInt(num);
        }
    
        /**
         * 格式化8位小数
         *
         * @param num
         * @return
         */
        @Deprecated
        public static String format8(Double num) {
            if (num == null)
                num = 0.00000000;
            return df8.format(num);
        }
    
        /**
         * 格式化8位小数
         *
         * @param num
         * @return
         */
        @Deprecated
        public static String format8Double(String num) {
            if (num == null)
                return FORMAT8STR;
            return df8.format(Double.parseDouble(num));
        }
    
        /**
         * 格式化8位小数
         *
         * @param num
         * @return
         */
        public static String format8(String num) {
            if (StrUtils.isEmpty(num))
                return FORMAT8STR;
            BigDecimal bigDecimal = new BigDecimal(num);
           /* if ((0 > bigDecimal.compareTo(new BigDecimal("1"))) && (0 < bigDecimal.compareTo(new BigDecimal("-1")))){
                return format8Double(num);
            } else {
                return format8(bigDecimal);
            }*/
            return format8(bigDecimal);
        }
    
        /**
         * 格式化2位小数
         *
         * @param num
         * @return
         */
        public static String format2(String num) {
            if (StrUtils.isEmpty(num))
                num = FORMAT2STR;
            return format2(new BigDecimal(num));
        }
    
        /**
         * 格式化2位小数
         *
         * @param num
         * @return
         */
        @Deprecated
        public static String format2(Double num) {
            if (num == null || num == 0.0)
                num = 0.00;
            if (num == 0.015)
                num = 0.02;
            return df2.format(num);
        }
    
        /**
         * 格式化2位小数
         *
         * @param num
         * @return
         */
        public static String format2(BigDecimal num) {
            if (num == null)
                return FORMAT2STR;
            return num.setScale(2, java.math.BigDecimal.ROUND_HALF_UP).toPlainString();
        }
    
    
        /**
         * 格式化2位小数
         *
         * @param num
         * @return
         */
        public static BigDecimal format2BigDecimal(BigDecimal num) {
            if (num == null)
                return new BigDecimal("0.00");
            return num.setScale(2, java.math.BigDecimal.ROUND_HALF_UP);
        }
    
        /**
         * 格式化8位小数
         *
         * @param num
         * @return
         */
        public static String format8(BigDecimal num) {
            if (num == null)
                return FORMAT8STR;
            return num.setScale(8, java.math.BigDecimal.ROUND_HALF_UP).toPlainString();
        }
    
        /**
         * 是否比0大
         * num > 0
         *
         * @return
         */
        public static boolean biggerThan0(BigDecimal num) {
            if (num == null)
                return false;
            if (0 < num.compareTo(new BigDecimal(0)))
                return true;
            return false;
        }
    
        /**
         * 参数是否为null,为null时直接返回。部位null时做绝对值
         *
         * @param val
         * @return
         * @author wuqingyu
         */
        public static BigDecimal bigDecimalIsNull(BigDecimal val) {
            if (val != null) {
                val = val.abs();
            } else {
                val = null;
            }
            return val;
        }
    
    }
  • 相关阅读:
    php操作zip压缩文件
    php图像处理(thinkphp框架有相对强大的图像处理功能)
    php实现希尔排序(总结)
    PHP glob() 函数详解
    php资源类型变量
    dump var_dump print print_r的区别
    php实现遍历文件目录
    php常用函数
    php全局变量的使用
    php函数按地址传递参数(php引用)
  • 原文地址:https://www.cnblogs.com/chenglc/p/11077568.html
Copyright © 2020-2023  润新知