zoukankan      html  css  js  c++  java
  • 数字转换校验工具类

      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 }
  • 相关阅读:
    mysql replace into用法与坑
    MySQL主主复制3
    数据库分库分表sharding1
    70多G的Kindle电子书合集
    Laravel 之Service Providers
    Laravel之Service Container服务容器
    Laravel错误与日志处理
    Laravel系列 目录结构
    Linux环境变量设置指南
    Laravel系列2入门使用
  • 原文地址:https://www.cnblogs.com/chinazhou-wang/p/11815703.html
Copyright © 2011-2022 走看看