<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知識】
    主站蜘蛛池模板: 亚洲视频免费在线观看| 黄色一级视频免费| 1区2区3区产品乱码免费| 久久精品国产亚洲AV麻豆王友容 | 色影音免费色资源| 亚洲成AV人片天堂网无码| 一个人免费视频在线观看www | 日日噜噜噜噜夜夜爽亚洲精品 | 2021久久精品免费观看| 亚洲色偷偷偷网站色偷一区| 久久精品成人免费看| 亚洲视频在线观看| 免费看成人AA片无码视频羞羞网| 毛片基地免费视频a| 狠狠色伊人亚洲综合网站色| 日本一道高清不卡免费| 黄色a级片免费看| 久久亚洲中文字幕精品一区| 美女无遮挡拍拍拍免费视频 | 亚洲中文字幕久久久一区| 麻豆国产入口在线观看免费 | 亚洲人成网亚洲欧洲无码久久 | 亚洲精品伊人久久久久| 热久久精品免费视频| 日韩在线观看免费完整版视频| 91香蕉在线观看免费高清| 亚洲av片不卡无码久久| 午夜爱爱免费视频| 亚洲精品视频免费观看| 亚洲男人第一av网站| 女人张开腿等男人桶免费视频| 亚洲天天做日日做天天看| 99久久99久久精品免费看蜜桃| 久久亚洲中文字幕精品一区| 国产精品免费无遮挡无码永久视频 | 国产美女a做受大片免费| 99久久精品毛片免费播放| 亚洲综合亚洲国产尤物| 免费永久看黄在线观看app| 久久国产免费一区| 国产成人精品亚洲一区|