zoukankan      html  css  js  c++  java
  • BigDecimal快速使用

    double类型最多支持16位有效数字,且最大值只支持10^308次方,大一点的数字会变为科学计数法,小数精度不够等有一系列不方便的问题;

    引进BigDecimal解决此类麻烦,弊端,BigDecimal没有double使用方便;具体如下;

    警告警告!!!--> BigDecimal保留小数精度时,比较靠谱,但是当值小于1大于0的时候,保留位数大于6位就会变成科学计数法,解决办法-toPlainString()代替toString()

    创建对象,推荐

    public BigDecimal(String val)

    而不推荐

    public BigDecimal(double val),会出现0.00=0


    基本操作:

         加:add(BigDecima)

    
    

         减:subtract(BigDecimal)

    
    

         乘:multiply(BigDecimal)

    
    

         除:divide(BigDecimal)

    
    

         乘方:pow(int)

    
    

         取绝对值:abs()

    
    

         取反:negate()

    
    

         对比:compareTo(BigDecimal)

    
    

         设置小数点精确度:setScale(int)

         不使用科学计数法:toPlainString()

    
    

         设置保留小数点精确度并添加保留方式(直接加1或者四舍五入):setScale(int, int)

        /**
         * 转小数,保留2位
         * @param num
         * @return
         */
        public static BigDecimal StrTo2Double(String num) {
            return new BigDecimal(num).setScale(2, java.math.BigDecimal.ROUND_HALF_UP);
        }
        /**
         * 格式化8位小数
         
         * @param num
         * @return
         */
        public static String format8(BigDecimal num) {
            if (num == null)
                return "0.00000000";
            return num.setScale(8, java.math.BigDecimal.ROUND_HALF_UP).toPlainString();
        }
        /**
         * 是否比0大
         * num > 0
         * @return
         */
        public static boolean biggerThan0(BigDecimal num) {
            if (0 < num.compareTo(new BigDecimal(0)))
                return true;
            return false;
        }






  • 相关阅读:
    Ajax返回xml类型数据
    选择排序 C&&C++
    php 给app写短信验证码 使用memcache缓存验证码
    php 免费的快递查询接口快递100
    CSS字体大小设置时的参考(转)
    excel vba 打印设置(转)
    MySQL的数据类型(转)
    XMind 8 pro update 7激活办法
    张小龙2011年饭否日记
    页面静态化技术Freemarker技术的介绍及使用实例.
  • 原文地址:https://www.cnblogs.com/chenglc/p/10007634.html
Copyright © 2011-2022 走看看