首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

数目字操作助手类

2012-12-19 
数字操作助手类public class NumberHelper {private static Log logger LogFactory.getLog(NumberHelper

数字操作助手类

public class NumberHelper {         private static Log logger = LogFactory.getLog(NumberHelper.class);              /**       * 将源数字格式化为指定的长度,不足的位数在前面补零,如果长度小于源数字的长度返回原始数字       * 适用于在产生指定长度的流水号时使用       *        * @param source       * @return       */      public static String number2char(int source, int length) {           try{               String module = new String();               for (int i=0; i<length; i++){                   module += "0";               }               DecimalFormat format = new DecimalFormat(module);               return format.format(source);           } catch (Exception e){               logger.error("源数字或指定长度非法", e);               e.printStackTrace();               return null;           }       }              /**       * 将百分比格式化为数字表示,默认使用四舍五入的算法不舍去小数位数       *        * @param source 百分比格式的数字       * @return       */      public static Double percent2number(double source){           try{               BigDecimal big = new BigDecimal(source);               return big.divide(new BigDecimal(100)).doubleValue();           } catch (Exception e){               logger.error("将百分比格式化为数字表示出现错误", e);               e.printStackTrace();               return null;           }       }              /**       * 将百分比格式化为数字表示,默认使用四舍五入的算法并保留指定位数的小数       *        * @param source 百分比格式的数字       * @param length 小数位数       * @return       */      public static double percent2number(double source, int length){           try{               BigDecimal big = new BigDecimal(source);               return big.divide(new BigDecimal(100), length, RoundingMode.HALF_UP).doubleValue();           } catch (Exception e){               logger.error("将百分比格式化为数字表示出现错误", e);               e.printStackTrace();               return 0;           }       }              /**       * 将两个数字相除并返回百分格式       *        * @param dividend 被除数       * @param divisor 除数       * @return 带%号的字符串       */      public static String divide2Percent(int dividend, int divisor){           return number2percent(divide(dividend, divisor));       }              /**       * 将数字格式化为百分比表示       *        * @param source       * @return       */      public static String number2percent(double source){           try{               DecimalFormat format = new DecimalFormat("#.##%");               return format.format(source);           } catch (Exception e){               logger.error("将数字格式化为百分比表示出现错误", e);               e.printStackTrace();               return null;           }       }              /**       * 两个整数相除保留两位小数       *        * @param dividend 被除数       * @param divisor 除数       * @return       */      public static Double divide(int dividend, int divisor){           return divide(dividend, divisor, 2);       }              /**       * 两个整数相除保留指定位数的小数       *        * @param dividend 被除数       * @param divisor 除数       * @param length 保留小数位数的长度       * @return       */      public static Double divide(int dividend, int divisor, int length){           try{               if (dividend == 0){                   return 0D;               }               BigDecimal big = new BigDecimal(divisor);               double d = big.divide(new BigDecimal(dividend), length, RoundingMode.HALF_UP).doubleValue();               return d;           } catch (Exception e){               logger.error("数字相除发生错误", e);               e.printStackTrace();               return null;           }       }         /**       * 将double数据保留指定位数的小数       * @param length 保留小数位数的长度       * @return       */      public static Double divide(double source, int length){           try{               if (source == 0){                   return 0D;               }               BigDecimal big = new BigDecimal(source);               double d = big.setScale(length, RoundingMode.HALF_UP).doubleValue();               return d;           } catch (Exception e){               logger.error("保留指定位数的小数发生错误", e);               e.printStackTrace();               return null;           }       }              /**       * 将double数据保留指定位数的小数       * @param length 保留小数位数的长度,小数位数不够,以0补全。       * 支持科学计算法       * @return       */      public static String divideToString(double source, int length){           BigDecimal big = new BigDecimal(source);           return  big.setScale(length, RoundingMode.HALF_UP).toString();       }              /**       * 将String数据保留指定位数的小数       * @param length 保留小数位数的长度,小数位数不够,以0补全。       * 支持科学计算法       * @return       */      public static String divideToString(String source, int length){           BigDecimal big = new BigDecimal(source);           return  big.setScale(length, RoundingMode.HALF_UP).toString();       }                     public static void main(String[] args){           System.out.print(divideToString("1.23E4",5));       }   }  本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiaoping8411/archive/2010/04/02/5446335.aspx

热点排行