Java—普通数字格式与财务会计格式的相互转换代码实现

1,304 阅读1分钟

详细代码过程


    /**
    * <b>功能描述:数据转为财务格式</b><br>
    * @author newzhong
    * @since JDK 1.8
    *
    */
   public String financialFormatStr(BigDecimal num){
  
        // 初始化为0.00
        StringBuilder result = new StringBuilder("0.00");
        
        String errFormat = ".00";
        String point = ".";
        
        // 判断传入的数值是否为空或者0
        if (num != null || num.equals(BigDecimal.ZERO)){
        
            // 格式财务格式
            DecimalFormat decimalFormat = new DecimalFormat("###,##0.00");
            String format = decimalFormat.format(num);
            
            // 特殊情况判断
            if (errFormat.equals(format)){
                format = "0.00";
            }
            if (point.equals(format)){
                format = "0" + format;
            }
            return format;

        }else {
            return result.toString();

        }
    }

    /**
    * <b>功能描述:财务格式转为普通数值</b><br>
    * @author newzhong
    * @since JDK 1.8
    *
    */
    public BigDecimal financialToNum(String moneyStr){
        String moneyNum = moneyStr.replaceAll(",", "");
        BigDecimal bigDecimal = new BigDecimal(moneyNum);
        return bigDecimal;
    }