<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无码免费无禁网站| 久操视频免费观看| 日韩a级毛片免费观看| 亚洲欧美国产国产综合一区| 黄色成人网站免费无码av| 亚洲精品亚洲人成在线播放| 免费精品国偷自产在线在线| 国产精品亚洲自在线播放页码| 国产成人精品免费视频动漫 | 成年网站免费入口在线观看| 国产一区二区三区免费在线观看| 亚洲av无码日韩av无码网站冲| 国产男女猛烈无遮挡免费网站| 黄色网页免费观看| 亚洲国产V高清在线观看| 丰满人妻一区二区三区免费视频| 亚洲av无码乱码国产精品| 日本在线看片免费人成视频1000| 亚洲大香人伊一本线| 成人免费视频网址| 一二三区免费视频| 亚洲综合视频在线| 毛片免费观看网站| 一日本道a高清免费播放| 亚洲最大福利视频网站| 成人免费毛片观看| 人体大胆做受免费视频| 亚洲视频中文字幕| 在线观看免费成人| a级成人免费毛片完整版| 亚洲国产综合精品| 免费乱理伦在线播放| 日韩免费高清大片在线| 亚洲AV香蕉一区区二区三区| 中文字幕亚洲无线码a| 啦啦啦完整版免费视频在线观看| 国产AV无码专区亚洲AV麻豆丫| 亚洲中文字幕无码爆乳AV| 黄色网址免费大全| www在线观看播放免费视频日本| 亚洲网红精品大秀在线观看|