<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 閱讀(285) 評論(0)  編輯  收藏 所屬分類: 【Java知識】
    主站蜘蛛池模板: 99精品在线免费观看| 麻豆国产精品入口免费观看| 性生交片免费无码看人| 亚洲另类激情专区小说图片| 在线电影你懂的亚洲| 日韩国产欧美亚洲v片| 免费黄网站在线看| 永久免费看mv网站入口| 亚洲AV美女一区二区三区| 在线91精品亚洲网站精品成人| 免费的全黄一级录像带| 爽爽日本在线视频免费| 亚洲国产精品一区二区久久| 美国毛片亚洲社区在线观看| 最近2019免费中文字幕6| 亚洲欧洲日产国码一级毛片| 亚洲区视频在线观看| 成人无码视频97免费| 热99re久久精品精品免费| 亚洲AV人无码综合在线观看| 美女羞羞视频免费网站| h视频在线观看免费完整版| 成人亚洲性情网站WWW在线观看| 久久久久精品国产亚洲AV无码| 美女巨胸喷奶水视频www免费| 成人免费视频88| 亚洲黄色在线视频| 久久高潮一级毛片免费| 国产成人综合久久精品免费| 亚洲精品美女视频| a级毛片免费全部播放| 免费在线观看日韩| 亚洲中文字幕日本无线码| 久久这里只精品99re免费| 亚洲精品高清一二区久久| 亚洲а∨精品天堂在线| 日韩中文字幕精品免费一区| 久久精品亚洲综合专区| 视频免费1区二区三区| 日韩免费毛片视频| 2020国产精品亚洲综合网|