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

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

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

    java浮點數運算不準確問題的解決

    今天遇到了這樣的問題,就是浮點運算后數據比較出現錯誤,郁悶了半天,網上查了資料才發現浮點數直接用雙目運算符連接會出現結果不準確問題。解決方法如下:
    1。所有浮點運算都在數據庫內做好,也就是都用sql實現了
    2。用BigDecimal實現,方法如下(僅僅是個例子):
    import java.math.BigDecimal;

    public class tt {

     /**
      * @param args
      */
     public static void main(String[] args) {
      float a = 1.1f;
      float b = 2.2f;
      tt t = new tt();
      System.out.println(t.add(a,b));
      System.out.println(t.sub(a,b));
      System.out.println(t.mul(a,b));
      System.out.println(t.div(a,b));
      System.out.println(t.round(a));

     }
     public float add(float v1,float v2){//加法
       BigDecimal b1 = new BigDecimal(Float.toString(v1));
       BigDecimal b2 = new BigDecimal(Float.toString(v2));
       return b1.add(b2).floatValue();
      }

      public float sub(float v1,float v2){//減法
       BigDecimal b1 = new BigDecimal(Float.toString(v1));
       BigDecimal b2 = new BigDecimal(Float.toString(v2));
       return b1.subtract(b2).floatValue();
      }

      public float mul(float v1,float v2){//乘法
       BigDecimal b1 = new BigDecimal(Float.toString(v1));
       BigDecimal b2 = new BigDecimal(Float.toString(v2));
       return b1.multiply(b2).floatValue();
      }

      public float div(float v1,float v2){//除法
       BigDecimal b1 = new BigDecimal(Float.toString(v1));
       BigDecimal b2 = new BigDecimal(Float.toString(v2));
       return b1.divide(b2,3,BigDecimal.ROUND_HALF_UP).floatValue();
      }

      public float round(float v){//截取3位
       BigDecimal b = new BigDecimal(Float.toString(v));
       BigDecimal one = new BigDecimal("1");
       return b.divide(one,3,BigDecimal.ROUND_HALF_UP).floatValue();
      }
    }

    posted on 2006-02-07 09:55 隨風逝 閱讀(3156) 評論(2)  編輯  收藏 所屬分類: java

    評論

    # re: java浮點數運算不準確問題的解決 2006-02-07 11:51 avant  回復  更多評論   

    二進制無法精確表達一些十進制浮點數造成的,《java解惑》第2個謎題就是對此的精到解釋。

    # re: java浮點數運算不準確問題的解決 2006-02-07 11:55 sunny  回復  更多評論   

    謝謝avant朋友解釋,我要去看看這本書:)
    主站蜘蛛池模板: 亚洲va久久久久| 亚洲美女人黄网成人女| mm1313亚洲国产精品无码试看| 国产成人免费在线| 亚洲美女aⅴ久久久91| 亚洲精品视频免费在线观看| 亚洲国产精品不卡在线电影| 亚洲成人免费在线| 亚洲精品永久www忘忧草| 最近2019免费中文字幕6| 亚洲理论在线观看| 皇色在线视频免费网站| 精品丝袜国产自在线拍亚洲| 免费被黄网站在观看| 久久精品国产亚洲av瑜伽| 亚洲AV网站在线观看| 国产免费人成视频尤勿视频| 久久久青草青青亚洲国产免观| 男的把j放进女人下面视频免费| 亚洲黄色在线观看| 成人au免费视频影院| 国产成人亚洲午夜电影| 日本亚洲国产一区二区三区| 鲁丝片一区二区三区免费| 中文字幕亚洲综合久久| 成人免费视频观看无遮挡| 色婷婷亚洲一区二区三区| 伊人婷婷综合缴情亚洲五月| 99爱在线观看免费完整版| 国产AV旡码专区亚洲AV苍井空| 免费h黄肉动漫在线观看| 免费无码又爽又刺激一高潮| 亚洲国产品综合人成综合网站| 好吊妞视频免费视频| A级毛片成人网站免费看| 亚洲国产精品专区| 免费一级毛片清高播放| 暖暖免费日本在线中文| 精品国产_亚洲人成在线| 国产亚洲综合一区柠檬导航| 青春禁区视频在线观看直播免费|