xih  
          日歷

          導航

          常用鏈接

          留言簿(2)

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           
          ??? java中用DecimalFormat df = new DecimalFormat("#######0.00");進行四舍五入時,如果最后一位為5,則會直接舍掉,而不會入上去。如:12.515,得到得 結果將是12.51。解決方法:
          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();
          ????}
          ??? java中的浮點數類型float和double不能進行運算,遇到有些數據得到的數據不準確。如:3.121-1=3.1209999999998。解決方法:
          public?class?Arith?{
          ????
          private?static?final?int?DEF_DIV_SCALE?=?10;
          ????
          ????
          /**
          ?????*?兩個Double數相加
          ?????*?
          @param?v1
          ?????*?
          @param?v2
          ?????*?
          @return?Double
          ?????
          */
          ????
          public?static?Double?add(Double?v1,Double?v2){
          ????????BigDecimal?b1?
          =?new?BigDecimal(v1.toString());
          ????????BigDecimal?b2?
          =?new?BigDecimal(v2.toString());
          ????????
          return?b1.add(b2).doubleValue();
          ????}
          ????
          ????
          /**
          ?????*?兩個Double數相減
          ?????*?
          @param?v1
          ?????*?
          @param?v2
          ?????*?
          @return?Double
          ?????
          */
          ????
          public?static?Double?sub(Double?v1,Double?v2){
          ????????BigDecimal?b1?
          =?new?BigDecimal(v1.toString());
          ????????BigDecimal?b2?
          =?new?BigDecimal(v2.toString());
          ????????
          return?b1.subtract(b2).doubleValue();
          ????}
          ????
          ????
          /**
          ?????*?兩個Double數相乘
          ?????*?
          @param?v1
          ?????*?
          @param?v2
          ?????*?
          @return?Double
          ?????
          */
          ????
          public?static?Double?mul(Double?v1,Double?v2){
          ????????BigDecimal?b1?
          =?new?BigDecimal(v1.toString());
          ????????BigDecimal?b2?
          =?new?BigDecimal(v2.toString());
          ????????
          return?b1.multiply(b2).doubleValue();
          ????}
          ????
          ????
          /**
          ?????*?兩個Double數相除
          ?????*?
          @param?v1
          ?????*?
          @param?v2
          ?????*?
          @return?Double
          ?????
          */
          ????
          public?static?Double?div(Double?v1,Double?v2){
          ????????BigDecimal?b1?
          =?new?BigDecimal(v1.toString());
          ????????BigDecimal?b2?
          =?new?BigDecimal(v2.toString());
          ????????
          return?b1.divide(b2,DEF_DIV_SCALE,BigDecimal.ROUND_HALF_UP).doubleValue();
          ????}
          ????
          ????
          /**
          ?????*?兩個Double數相除,并保留scale位小數
          ?????*?
          @param?v1
          ?????*?
          @param?v2
          ?????*?
          @param?scale
          ?????*?
          @return?Double
          ?????
          */
          ????
          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(v1.toString());
          ????????BigDecimal?b2?
          =?new?BigDecimal(v2.toString());
          ????????
          return?b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
          ????}

          }

          posted on 2007-03-15 16:46 費思量 閱讀(6152) 評論(1)  編輯  收藏
          評論:

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


          網站導航:
           
           
          Copyright © 費思量 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 铜梁县| 东至县| 申扎县| 建宁县| 通城县| 闽侯县| 深泽县| 蒲江县| 乌兰浩特市| 德化县| 沅陵县| 新民市| 晋江市| 三门县| 唐河县| 那坡县| 普定县| 玉溪市| 错那县| 西林县| 琼海市| 西平县| 遂昌县| 内丘县| 宝鸡市| 林州市| 阿拉善左旗| 明光市| 邯郸县| 京山县| 都兰县| 新建县| 曲松县| 阳高县| 万盛区| 宁城县| 余江县| 壤塘县| 莫力| 安徽省| 德兴市|