<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朋友解釋,我要去看看這本書:)
    主站蜘蛛池模板: 黑人大战亚洲人精品一区| 免费看h片的网站| 国产男女性潮高清免费网站| 亚洲an日韩专区在线| 最近免费中文字幕mv电影| 亚洲情a成黄在线观看动漫尤物| 91av免费在线视频| 亚洲国产精品一区第二页| 人人揉揉香蕉大免费不卡| 亚洲午夜久久影院| 青青在线久青草免费观看| 亚洲春色另类小说| 久久九九免费高清视频| 国产成人亚洲精品91专区手机| 天堂亚洲免费视频| 亚洲精品乱码久久久久66| 日韩免费视频一区二区| 亚洲国产日韩在线人成下载| 噜噜嘿在线视频免费观看| 日本亚洲高清乱码中文在线观看| 国产乱子伦片免费观看中字| 一级毛片免费不卡直观看| 亚洲成a人片在线观看日本| 1000部拍拍拍18勿入免费视频软件| 亚洲最新在线视频| 国产一区视频在线免费观看 | 国产精品亚洲专区一区| 国产精品亚洲w码日韩中文| 九九美女网站免费| 中文无码亚洲精品字幕| 久久精品亚洲福利| 无码人妻精品中文字幕免费东京热| 亚洲av无码成人精品国产| 亚洲中文字幕无码一区| 在线观看的免费网站| 一级毛片在线免费视频| 亚洲网红精品大秀在线观看| 日本无吗免费一二区| 日韩精品无码一区二区三区免费 | 在线成人a毛片免费播放| 久久一区二区免费播放|