<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朋友解釋,我要去看看這本書:)
    主站蜘蛛池模板: 亚洲精品国产美女久久久| 美女免费精品高清毛片在线视| 亚洲国产主播精品极品网红| 久久免费看黄a级毛片| 东北美女野外bbwbbw免费| 18禁亚洲深夜福利人口| 亚洲乱码无限2021芒果| 亚洲av女电影网| 国产亚洲综合成人91精品| 亚洲?V乱码久久精品蜜桃 | 精品国产综合成人亚洲区| 四虎影视免费永久在线观看 | 亚洲youjizz| 亚洲黄色在线观看视频| 久久久亚洲精品国产| 亚洲熟女一区二区三区| 丁香亚洲综合五月天婷婷| 成人免费视频网址| 一个人免费观看视频www| 久久国内免费视频| 2021国内精品久久久久精免费| a级毛片无码免费真人久久| www.av在线免费观看| 污视频网站在线观看免费| 无码天堂va亚洲va在线va| 丰满亚洲大尺度无码无码专线| 亚洲欧美国产精品专区久久| 国产人成亚洲第一网站在线播放| 亚洲av乱码一区二区三区香蕉 | 成人特黄a级毛片免费视频| 午夜性色一区二区三区免费不卡视频 | 99视频免费在线观看| 99re6在线视频精品免费| 成人毛片100免费观看| 国产在线一区二区综合免费视频 | 亚洲激情中文字幕| 亚洲天天做日日做天天看 | 在线a免费观看最新网站| 91麻豆最新在线人成免费观看| 日韩免费一区二区三区在线| 免费看国产精品3a黄的视频|