<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JAVA—咖啡館

    ——歡迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術(shù),交流工作經(jīng)驗,分享JAVA帶來的快樂!本網(wǎng)站部分轉(zhuǎn)載文章,如果有版權(quán)問題請與我聯(lián)系。

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks
      1public class NumberHelper {   
      2  
      3    private static Log logger = LogFactory.getLog(NumberHelper.class);   
      4       
      5    /**  
      6     * 將源數(shù)字格式化為指定的長度,不足的位數(shù)在前面補零,如果長度小于源數(shù)字的長度返回原始數(shù)字  
      7     * 適用于在產(chǎn)生指定長度的流水號時使用  
      8     *   
      9     * @param source  
     10     * @return  
     11     */
      
     12    public static String number2char(int source, int length) {   
     13        try{   
     14            String module = new String();   
     15            for (int i=0; i<length; i++){   
     16                module += "0";   
     17            }
       
     18            DecimalFormat format = new DecimalFormat(module);   
     19            return format.format(source);   
     20        }
     catch (Exception e){   
     21            logger.error("源數(shù)字或指定長度非法", e);   
     22            e.printStackTrace();   
     23            return null;   
     24        }
       
     25    }
       
     26       
     27    /**  
     28     * 將百分比格式化為數(shù)字表示,默認使用四舍五入的算法不舍去小數(shù)位數(shù)  
     29     *   
     30     * @param source 百分比格式的數(shù)字  
     31     * @return  
     32     */
      
     33    public static Double percent2number(double source){   
     34        try{   
     35            BigDecimal big = new BigDecimal(source);   
     36            return big.divide(new BigDecimal(100)).doubleValue();   
     37        }
     catch (Exception e){   
     38            logger.error("將百分比格式化為數(shù)字表示出現(xiàn)錯誤", e);   
     39            e.printStackTrace();   
     40            return null;   
     41        }
       
     42    }
       
     43       
     44    /**  
     45     * 將百分比格式化為數(shù)字表示,默認使用四舍五入的算法并保留指定位數(shù)的小數(shù)  
     46     *   
     47     * @param source 百分比格式的數(shù)字  
     48     * @param length 小數(shù)位數(shù)  
     49     * @return  
     50     */
      
     51    public static double percent2number(double source, int length){   
     52        try{   
     53            BigDecimal big = new BigDecimal(source);   
     54            return big.divide(new BigDecimal(100), length, RoundingMode.HALF_UP).doubleValue();   
     55        }
     catch (Exception e){   
     56            logger.error("將百分比格式化為數(shù)字表示出現(xiàn)錯誤", e);   
     57            e.printStackTrace();   
     58            return 0;   
     59        }
       
     60    }
       
     61       
     62    /**  
     63     * 將兩個數(shù)字相除并返回百分格式  
     64     *   
     65     * @param dividend 被除數(shù)  
     66     * @param divisor 除數(shù)  
     67     * @return 帶%號的字符串  
     68     */
      
     69    public static String divide2Percent(int dividend, int divisor){   
     70        return number2percent(divide(dividend, divisor));   
     71    }
       
     72       
     73    /**  
     74     * 將數(shù)字格式化為百分比表示  
     75     *   
     76     * @param source  
     77     * @return  
     78     */
      
     79    public static String number2percent(double source){   
     80        try{   
     81            DecimalFormat format = new DecimalFormat("#.##%");   
     82            return format.format(source);   
     83        }
     catch (Exception e){   
     84            logger.error("將數(shù)字格式化為百分比表示出現(xiàn)錯誤", e);   
     85            e.printStackTrace();   
     86            return null;   
     87        }
       
     88    }
       
     89       
     90    /**  
     91     * 兩個整數(shù)相除保留兩位小數(shù)  
     92     *   
     93     * @param dividend 被除數(shù)  
     94     * @param divisor 除數(shù)  
     95     * @return  
     96     */
      
     97    public static Double divide(int dividend, int divisor){   
     98        return divide(dividend, divisor, 2);   
     99    }
       
    100       
    101    /**  
    102     * 兩個整數(shù)相除保留指定位數(shù)的小數(shù)  
    103     *   
    104     * @param dividend 被除數(shù)  
    105     * @param divisor 除數(shù)  
    106     * @param length 保留小數(shù)位數(shù)的長度  
    107     * @return  
    108     */
      
    109    public static Double divide(int dividend, int divisor, int length){   
    110        try{   
    111            if (dividend == 0){   
    112                return 0D;   
    113            }
       
    114            BigDecimal big = new BigDecimal(divisor);   
    115            double d = big.divide(new BigDecimal(dividend), length, RoundingMode.HALF_UP).doubleValue();   
    116            return d;   
    117        }
     catch (Exception e){   
    118            logger.error("數(shù)字相除發(fā)生錯誤", e);   
    119            e.printStackTrace();   
    120            return null;   
    121        }
       
    122    }
       
    123  
    124    /**  
    125     * 將double數(shù)據(jù)保留指定位數(shù)的小數(shù)  
    126     * @param length 保留小數(shù)位數(shù)的長度  
    127     * @return  
    128     */
      
    129    public static Double divide(double source, int length){   
    130        try{   
    131            if (source == 0){   
    132                return 0D;   
    133            }
       
    134            BigDecimal big = new BigDecimal(source);   
    135            double d = big.setScale(length, RoundingMode.HALF_UP).doubleValue();   
    136            return d;   
    137        }
     catch (Exception e){   
    138            logger.error("保留指定位數(shù)的小數(shù)發(fā)生錯誤", e);   
    139            e.printStackTrace();   
    140            return null;   
    141        }
       
    142    }
       
    143       
    144    /**  
    145     * 將double數(shù)據(jù)保留指定位數(shù)的小數(shù)  
    146     * @param length 保留小數(shù)位數(shù)的長度,小數(shù)位數(shù)不夠,以0補全。  
    147     * 支持科學(xué)計算法  
    148     * @return  
    149     */
      
    150    public static String divideToString(double source, int length){   
    151        BigDecimal big = new BigDecimal(source);   
    152        return  big.setScale(length, RoundingMode.HALF_UP).toString();   
    153    }
       
    154       
    155    /**  
    156     * 將String數(shù)據(jù)保留指定位數(shù)的小數(shù)  
    157     * @param length 保留小數(shù)位數(shù)的長度,小數(shù)位數(shù)不夠,以0補全。  
    158     * 支持科學(xué)計算法  
    159     * @return  
    160     */
      
    161    public static String divideToString(String source, int length){   
    162        BigDecimal big = new BigDecimal(source);   
    163        return  big.setScale(length, RoundingMode.HALF_UP).toString();   
    164    }
       
    165       
    166       
    167    public static void main(String[] args){   
    168        System.out.print(divideToString("1.23E4",5));   
    169    }
       
    170}
      
    171
    posted on 2010-06-21 10:11 rogerfan 閱讀(292) 評論(0)  編輯  收藏 所屬分類: 【Java知識】
    主站蜘蛛池模板: 亚洲av日韩综合一区在线观看| 久久亚洲国产精品五月天婷| 亚洲精品**中文毛片| 国产免费爽爽视频在线观看| 国产亚洲一区区二区在线| 日日狠狠久久偷偷色综合免费| 免费永久看黄在线观看app| 国产亚洲精品AAAA片APP| 亚洲AⅤ永久无码精品AA| 免费看一级一级人妻片 | 波多野结衣在线免费观看| 中文字幕亚洲免费无线观看日本| 一区二区三区观看免费中文视频在线播放 | 久久亚洲高清观看| 久久精品国产影库免费看| 亚洲av无码乱码国产精品| 8x网站免费入口在线观看| 亚洲一级毛片免费观看| 午夜毛片不卡高清免费| 青青免费在线视频| 亚洲精品自产拍在线观看| 少妇太爽了在线观看免费视频| 亚洲精品亚洲人成在线观看麻豆| 永久免费av无码网站韩国毛片| 亚洲日韩一中文字暮| 亚洲国产精品一区二区第四页| 热99RE久久精品这里都是精品免费 | 亚洲四虎永久在线播放| 五月婷婷综合免费| 亚洲精品无码aⅴ中文字幕蜜桃| 免费h成人黄漫画嘿咻破解版| 99久久国产精品免费一区二区 | japanese色国产在线看免费| 亚洲αv久久久噜噜噜噜噜| 日韩免费一区二区三区在线播放| 亚洲av无码一区二区三区四区| 亚洲真人无码永久在线| 亚洲视频免费在线播放| 牛牛在线精品免费视频观看| 中文字幕亚洲色图| 国产亚洲精品影视在线产品|