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 費思量 閱讀(6154) 評論(1)  編輯  收藏
          評論:

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


          網站導航:
           
           
          Copyright © 費思量 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 灯塔市| 新昌县| 泰宁县| 和田县| 武胜县| 大新县| 金昌市| 外汇| 平舆县| 合川市| 陇川县| 达孜县| 石棉县| 宜都市| 仙居县| 卓资县| 扎赉特旗| 邢台市| 叶城县| 大埔县| 江西省| 子长县| 虞城县| 闵行区| 林周县| 多伦县| 菏泽市| 买车| 河南省| 北海市| 达日县| 霍州市| 石狮市| 衡山县| 梓潼县| 都匀市| 锦屏县| 安康市| 宜君县| 昂仁县| 琼海市|