<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 閱讀(292) 評論(0)  編輯  收藏 所屬分類: 【Java知識】
    主站蜘蛛池模板: 久久精品九九亚洲精品天堂 | 久久99国产亚洲高清观看首页 | 亚洲乱码国产乱码精品精| 免费人成大片在线观看播放电影| 国产高清视频在线免费观看| 亚洲熟妇AV一区二区三区浪潮| 免费国产作爱视频网站| 亚洲中文字幕无码久久| 日本高清免费网站| 日韩a毛片免费观看| 亚洲成A人片在线观看无码3D | 国产日韩成人亚洲丁香婷婷| 最新亚洲人成无码网站| 成人免费毛片视频| 国产精品无码亚洲精品2021 | 亚洲一区二区三区91| 亚洲成a人片在线观看天堂无码| 免费观看的av毛片的网站| 国产亚洲情侣久久精品| 亚洲午夜久久久久久久久久| 久久久久久一品道精品免费看| 亚洲成AV人综合在线观看| 成人免费网站在线观看| 免费人成再在线观看网站 | 亚洲色偷偷av男人的天堂| 国产精品亚洲一区二区三区| 国产精品亚洲w码日韩中文| 青青青国产手机频在线免费观看| 亚洲大尺码专区影院| 又黄又大又爽免费视频| 亚洲jjzzjjzz在线观看| 国产99视频免费精品是看6| 国产美女视频免费观看的网站| 亚洲国产精品久久久久| a级毛片在线免费看| 亚洲乱人伦精品图片| 伊在人亚洲香蕉精品区麻豆| 亚洲妇女无套内射精| 亚洲一区二区女搞男| 国产精品久久久久久久久免费| 美女视频免费看一区二区|