数字转换校验工具类

  1 package com.zhouyy.netBank.util;
  2 
  3 import java.math.BigDecimal;
  4 import java.text.DecimalFormat;
  5 
  6 /**
  7  * Created by zhoul on 2017/6/14.
  8  */
  9 public class NumberUtil {
 10 
 11     // 数字转字符串
 12     public static String formatNumeric(double numeric, String pattern) {
 13         if (numeric == -0) {
 14             numeric = 0;
 15         }
 16         DecimalFormat decFormat = new DecimalFormat(pattern);
 17         return decFormat.format(numeric);
 18     }
 19 
 20     public static String formatNumeric(BigDecimal numeric, String pattern) {
 21         if (numeric == null) {
 22             numeric = BigDecimal.ZERO;
 23         }
 24         return formatNumeric(numeric.doubleValue(), pattern);
 25     }
 26 
 27     // 数字转逗号分隔字符串
 28     public static String formatNumeric(double numeric) {
 29         return formatNumeric(numeric, "#,##0.00");
 30     }
 31 
 32     public static String formatNumeric(BigDecimal numeric) {
 33         if (numeric == null) {
 34             numeric = BigDecimal.ZERO;
 35         }
 36         return formatNumeric(numeric.doubleValue());
 37     }
 38 
 39     // 数字转逗号分隔字符串,附加小数位数(保留8位小数,那么dec参数为6,即,最少要有2位小数)
 40     public static String formatNumeric(double numeric, int dec) {
 41         String p = "";
 42         for (int i = 0; i < dec; i++) {
 43             p += "#";
 44         }
 45         return formatNumeric(numeric, "#,##0.00" + p);
 46     }
 47 
 48     public static String formatNumeric(BigDecimal numeric, int dec) {
 49         if (numeric == null) {
 50             numeric = BigDecimal.ZERO;
 51         }
 52         return formatNumeric(numeric.doubleValue(), dec);
 53     }
 54 
 55     // 数字转逗号分隔字符串;如果数字为零,则返回空
 56     public static String formatNumericEx(double numeric) {
 57         String result;
 58         if (numeric != 0) {
 59             result = formatNumeric(numeric);
 60         } else {
 61             result = "0.00";
 62         }
 63         return result;
 64     }
 65 
 66     public static String formatNumericEx(BigDecimal numeric) {
 67         if (numeric == null) {
 68             numeric = BigDecimal.ZERO;
 69         }
 70         return formatNumericEx(numeric.doubleValue());
 71     }
 72 
 73     // 将大数字格式化为字符串,避免以科学计数法显示
 74     public static String formatDouble(double numeric) {
 75         return formatNumeric(numeric, "#0.00");
 76     }
 77 
 78     public static String formatDouble(BigDecimal numeric) {
 79         if (numeric == null) {
 80             numeric = BigDecimal.ZERO;
 81         }
 82         return formatDouble(numeric.doubleValue());
 83     }
 84 
 85     // 将大数字格式化为字符串,避免以科学计数法显示5位
 86     public static String formatDoubles(double numeric) {
 87         return formatNumeric(numeric, "#0.00000");
 88     }
 89     
 90     // 将大数字格式化为字符串,避免以科学计数法显示4位
 91     public static String formatDoubles(BigDecimal numeric,int dec) {
 92          String p = "";
 93          if(dec<2){
 94              dec = 2;
 95          }
 96          for (int i = 0; i < dec; i++) {
 97              p += "0";
 98          }
 99          
100         return formatNumeric(numeric, "#0."+p);
101     }
102 
103     public static String formatDoubles(BigDecimal numeric) {
104         if (numeric == null) {
105             numeric = BigDecimal.ZERO;
106         }
107         return formatNumeric(numeric.doubleValue(), "#0.00000");
108     }
109 
110     public static String formatDoubleWithSix(double numeric) {
111         return formatNumeric(numeric, "#0.000000");
112     }
113 
114     public static String formatDoubleWithSix(BigDecimal numeric) {
115         if (numeric == null) {
116             numeric = BigDecimal.ZERO;
117         }
118         return formatNumeric(numeric.doubleValue(), "#0.000000");
119     }
120 
121     // 将形如234,567.00的逗号分隔字符串格式化为Double
122     public static double formatNumeric(String str) {
123         try {
124             return (new DecimalFormat("#,##0.00######")).parse(str)
125                     .doubleValue();
126         } catch (Exception e) {
127             return 0;
128         }
129     }
130     
131     /**
132      * 数据非空转换为零
133      */
134     public static BigDecimal formatNumericNull(BigDecimal numeric) {
135         if (numeric == null) {
136             numeric = BigDecimal.ZERO;
137         }
138         return numeric;
139     }
140     
141     /**
142      * Object转换为BigDecimal
143      */
144     public static BigDecimal objToBigDecimal(Object objNum) {
145         BigDecimal num=null;
146         if (objNum != null) {
147             if(objNum instanceof BigDecimal){
148                 num=(BigDecimal)objNum;
149             }else if(objNum instanceof Integer){
150                 num=new BigDecimal((Integer)objNum);
151             }else if(objNum instanceof Double){
152                 num=new BigDecimal((Double)objNum);
153             }else if(objNum instanceof String){
154                 num=new BigDecimal((String)objNum);
155             }
156         }
157         return num;
158     }
159     
160     public static void main(String[] args) {
161         System.out.println(NumberUtil.formatDouble(9.435));
162     }
163     
164 }

 

posted @ 2019-11-07 21:17  _万古如长夜  阅读(298)  评论(0编辑  收藏  举报