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 @   xh_Blog  阅读(638)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示