BigDecimal 使用 静态方法总结

 

转自:http://myrecord.top/?post=18

-------------千位加,

 public static  String  getQs(String old){
                 boolean result= old.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$");  
                 if(result&&old!=null&&!"".equals(old)){

                            DecimalFormat df = new DecimalFormat("#,###");
                            old=df.format(Double.valueOf(old));

                        return old;
                 }else{
                     return old;
                 }

            }




-------------数字相加,加%
   public static String getSum(String parm,String parm1){
          if(null!=parm&&parm1==null){
              return parm;
          }else if(null!=parm&&null!=parm1){
              BigDecimal  bef= new BigDecimal(parm.replace("%", ""));
              BigDecimal  afe= new BigDecimal(parm1.replace("%", ""));
              return bef.add(afe).toPlainString()+"%";
          }else if(null==parm&&parm1!=null){
              return parm1;
          }else{
              return "";
          }
      }


-----------相除保留2位
 public static String getsumBili(BigDecimal bef,BigDecimal afe){
          if(null!=afe&&!afe.toString().substring(0).equals("0")){
              String numStr=new java.text.DecimalFormat("0.00").format(bef.divide(afe));
              return new BigDecimal(numStr).toPlainString();
          }else{
              return "";
          }
      }





---------------保留六位并且忽略后面0,这里如果位数比较多,在页面显示会是科学计数法,因为BigDecimai,
public  static  BigDecimal  reSixBig(BigDecimal ss){
        String numStr=new java.text.DecimalFormat("0.000000").format(ss);
        BigDecimal  newNum=new BigDecimal(numStr);
        return newNum.stripTrailingZeros();
    }




-------------已验证------字符有可能为 0.00000123--
    public static  String  delezero(String old){
             boolean result= old.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$");  
             if(result&&old!=null&&!"".equals(old)){
                 String newStr=old;
                    if(old.contains(".0")&&"0".equals(old.substring(old.length()-1))){
                        old=newStr.substring(0, old.length()-2);    -----删除.0
                    }
                    return old;
             }else{
                 return old;
             }

        }
----toPlainString   不以科学计数法显示
----stripTrailingZeros   去除后面0,只能去除小数后有效数字之后的无效0
 System.out.println(new BigDecimal("0.0000").stripTrailingZeros());
这里的0.0000便无法去除,这时便需要delezero()来处理

------------------舍弃科学计数法
public  static  String  reSixBig(BigDecimal ss){
        String numStr=new java.text.DecimalFormat("0.000000").format(ss);
        System.out.println(numStr);
        BigDecimal  newNum=new BigDecimal(numStr);

        return newNum.stripTrailingZeros().toPlainString();
    }



public BigDecimal add(BigDecimal value);//加法
public BigDecimal subtract(BigDecimal value); //减法 
public BigDecimal multiply(BigDecimal value); //乘法
public BigDecimal divide(BigDecimal value); //除法

 

posted @ 2017-03-06 14:11  xh_Blog  阅读(638)  评论(0编辑  收藏  举报