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

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

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

    明天的明天的明天

    用鍵盤改變生活

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      17 Posts :: 0 Stories :: 19 Comments :: 0 Trackbacks
    /*
     * 創建日期 2004-10-14
     *
     * 如果需要精確計算,非要用String來夠造BigDecimal不可
     */
    package com.lims.actions.testqc.comm;

    /**
     * @author Jstar
     *
     *
     * 窗口 > 首選項 > Java > 代碼生成 > 代碼和注釋
     */

    import java.math.BigDecimal;

    /**
    * 由于Java的簡單類型不能夠精確的對浮點數進行運算,這個工具類提供精
    * 確的浮點數運算,包括加減乘除和四舍五入。
    */

    public class Arith {

     //默認除法運算精度

     private static final int DEF_DIV_SCALE = 10;

     //這個類不能實例化

     private Arith() {

     }

     /**
     
      * 提供精確的加法運算。
     
      * @param v1 被加數
     
      * @param v2 加數
     
      * @return 兩個參數的和
     
      */

     public static double add(double v1, double v2) {

      bigdecimal b1 = new BigDecimal(Double.toString(v1));

      bigdecimal b2 = new BigDecimal(Double.toString(v2));

      return b1.add(b2).doubleValue();

     }

     /**
      * 提供精確的減法運算。
      * @param v1 被減數
      * @param v2 減數
      * @return 兩個參數的差
      */

     public static double sub(double v1, double v2) {

      bigdecimal b1 = new BigDecimal(Double.toString(v1));

      bigdecimal b2 = new BigDecimal(Double.toString(v2));

      return b1.subtract(b2).doubleValue();

     }

     /**
     
      * 提供精確的乘法運算。
     
      * @param v1 被乘數
     
      * @param v2 乘數
     
      * @return 兩個參數的積
     
      */

     public static double mul(double v1, double v2) {

      bigdecimal b1 = new BigDecimal(Double.toString(v1));

      bigdecimal b2 = new BigDecimal(Double.toString(v2));

      return b1.multiply(b2).doubleValue();

     }

     /**
     
      * 提供(相對)精確的除法運算,當發生除不盡的情況時,精確到
     
      * 小數點以后10位,以后的數字四舍五入。
     
      * @param v1 被除數
     
      * @param v2 除數
     
      * @return 兩個參數的商
     
      */

     public static double div(double v1, double v2) {

      return div(v1, v2, DEF_DIV_SCALE);

     }

     /**
     
      * 提供(相對)精確的除法運算。當發生除不盡的情況時,由scale參數指
     
      * 定精度,以后的數字四舍五入。
     
      * @param v1 被除數
     
      * @param v2 除數
     
      * @param scale 表示表示需要精確到小數點以后幾位。
     
      * @return 兩個參數的商
     
      */

     public static double div(double v1, double v2, int scale) {

      if (scale < 0) {

       throw new IllegalArgumentException("The scale must be a positive integer or zero");

      }

      bigdecimal b1 = new BigDecimal(Double.toString(v1));

      bigdecimal b2 = new BigDecimal(Double.toString(v2));

      return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();

     }

     /**
     
      * 提供精確的小數位四舍五入處理。
     
      * @param v 需要四舍五入的數字
     
      * @param scale 小數點后保留幾位
     
      * @return 四舍五入后的結果
     
      */

     public static double round(double v, int scale) {

      if (scale < 0) {

       throw new IllegalArgumentException("The scale must be a positive integer or zero");

      }

      bigdecimal b = new BigDecimal(Double.toString(v));

      bigdecimal one = new BigDecimal("1");

      return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();

     }

    };

    posted on 2007-09-17 13:01 Endless 閱讀(513) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 免费无码又爽又黄又刺激网站| 精品久久久久久亚洲综合网| 国产免费无码AV片在线观看不卡| 亚洲精品色婷婷在线影院| 精品国产亚洲第一区二区三区| 国产免费卡一卡三卡乱码| 国产成人亚洲精品电影| 亚洲AV无码乱码精品国产| 人禽伦免费交视频播放| 亚洲国产a∨无码中文777| 久久成人免费播放网站| 亚洲黄色免费电影| 久草视频在线免费| 亚洲日韩国产二区无码| 免费国产人做人视频在线观看| 久青草国产免费观看| 亚洲产国偷V产偷V自拍色戒 | 曰批全过程免费视频观看免费软件 | 免费无码成人AV在线播放不卡| 亚洲高清国产拍精品26U| 最近免费中文字幕大全免费版视频| 亚洲视频在线免费看| 四色在线精品免费观看| 免费激情网站国产高清第一页 | 久久精品国产亚洲AV无码娇色 | 亚洲www77777| 久久影院亚洲一区| 99精品视频免费观看| 亚洲永久网址在线观看| 亚洲色欲久久久久综合网| 免费无遮挡无码永久视频| 亚洲最大的成人网| 亚洲伊人色欲综合网| 国产成人免费在线| 男女猛烈激情xx00免费视频| 亚洲成AV人片一区二区| 国产精品深夜福利免费观看| 秋霞人成在线观看免费视频| 日韩欧美亚洲国产精品字幕久久久| 亚洲人JIZZ日本人| 狠狠久久永久免费观看|