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

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

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

    JAVA—咖啡館

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

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks
      1public class NumberHelper {   
      2  
      3    private static Log logger = LogFactory.getLog(NumberHelper.class);   
      4       
      5    /**  
      6     * 將源數字格式化為指定的長度,不足的位數在前面補零,如果長度小于源數字的長度返回原始數字  
      7     * 適用于在產生指定長度的流水號時使用  
      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("源數字或指定長度非法", e);   
     22            e.printStackTrace();   
     23            return null;   
     24        }
       
     25    }
       
     26       
     27    /**  
     28     * 將百分比格式化為數字表示,默認使用四舍五入的算法不舍去小數位數  
     29     *   
     30     * @param source 百分比格式的數字  
     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("將百分比格式化為數字表示出現錯誤", e);   
     39            e.printStackTrace();   
     40            return null;   
     41        }
       
     42    }
       
     43       
     44    /**  
     45     * 將百分比格式化為數字表示,默認使用四舍五入的算法并保留指定位數的小數  
     46     *   
     47     * @param source 百分比格式的數字  
     48     * @param length 小數位數  
     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("將百分比格式化為數字表示出現錯誤", e);   
     57            e.printStackTrace();   
     58            return 0;   
     59        }
       
     60    }
       
     61       
     62    /**  
     63     * 將兩個數字相除并返回百分格式  
     64     *   
     65     * @param dividend 被除數  
     66     * @param divisor 除數  
     67     * @return 帶%號的字符串  
     68     */
      
     69    public static String divide2Percent(int dividend, int divisor){   
     70        return number2percent(divide(dividend, divisor));   
     71    }
       
     72       
     73    /**  
     74     * 將數字格式化為百分比表示  
     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("將數字格式化為百分比表示出現錯誤", e);   
     85            e.printStackTrace();   
     86            return null;   
     87        }
       
     88    }
       
     89       
     90    /**  
     91     * 兩個整數相除保留兩位小數  
     92     *   
     93     * @param dividend 被除數  
     94     * @param divisor 除數  
     95     * @return  
     96     */
      
     97    public static Double divide(int dividend, int divisor){   
     98        return divide(dividend, divisor, 2);   
     99    }
       
    100       
    101    /**  
    102     * 兩個整數相除保留指定位數的小數  
    103     *   
    104     * @param dividend 被除數  
    105     * @param divisor 除數  
    106     * @param length 保留小數位數的長度  
    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("數字相除發生錯誤", e);   
    119            e.printStackTrace();   
    120            return null;   
    121        }
       
    122    }
       
    123  
    124    /**  
    125     * 將double數據保留指定位數的小數  
    126     * @param length 保留小數位數的長度  
    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("保留指定位數的小數發生錯誤", e);   
    139            e.printStackTrace();   
    140            return null;   
    141        }
       
    142    }
       
    143       
    144    /**  
    145     * 將double數據保留指定位數的小數  
    146     * @param length 保留小數位數的長度,小數位數不夠,以0補全。  
    147     * 支持科學計算法  
    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數據保留指定位數的小數  
    157     * @param length 保留小數位數的長度,小數位數不夠,以0補全。  
    158     * 支持科學計算法  
    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 閱讀(286) 評論(0)  編輯  收藏 所屬分類: 【Java知識】
    主站蜘蛛池模板: 精品亚洲AV无码一区二区| 亚洲av成人一区二区三区在线播放| 亚洲高清无码专区视频| 免费一级毛片在线播放放视频 | 亚洲AV无码专区电影在线观看| 国产一区二区三区亚洲综合| 手机在线看永久av片免费| 亚洲精华国产精华精华液网站| 97在线线免费观看视频在线观看| 瑟瑟网站免费网站入口| 亚洲av无码专区国产乱码在线观看 | 亚洲另类无码一区二区三区| 亚洲av无码天堂一区二区三区| 久久免费公开视频| 亚洲国产无线乱码在线观看| 国产亚洲综合色就色| 青青操免费在线观看| 亚洲综合成人婷婷五月网址| 久久久久久久尹人综合网亚洲| 嫩草影院免费观看| 日韩精品无码免费专区午夜| 亚洲色偷偷综合亚洲av78| 久久青草亚洲AV无码麻豆| 国产免费人成在线视频| 99久热只有精品视频免费观看17| 黄页网址在线免费观看| 亚洲国产精品综合福利专区| 亚洲中文字幕无码久久综合网| 最好免费观看韩国+日本| 亚洲国产精品免费视频| 无码免费又爽又高潮喷水的视频| 亚洲剧情在线观看| 亚洲av片劲爆在线观看| 亚洲第一网站男人都懂| 性感美女视频在线观看免费精品| 91老湿机福利免费体验| 国产一级婬片A视频免费观看| 久久亚洲日韩看片无码| 国产亚洲AV夜间福利香蕉149| 日本二区免费一片黄2019| 免费看黄视频网站|